Principales respuestas
problemas con ComboBox

Pregunta
-
quiero saber de que manera puedo controlar esta variable para poder guardarla en un registro
Dim intnombre As String
Protected Sub Dropnombre_SelectedIndexChanged(sender As Object, e As EventArgs) Handles Dropnombre.SelectedIndexChanged
Using conn As New SqlConnection(ConfigurationManager.ConnectionStrings("sacifConnectionString").ToString())
conn.Open()
Dim oComando As New SqlCommand("SELECT idempleado FROM Empleado where nombres ='" & Dropnombre.Text & "' ", conn)
Dim oDataReader As SqlDataReader
oDataReader = oComando.ExecuteReader() ' obtener DataReader para Categoria
oDataReader.Read()
intnombre = CInt(oDataReader("idempleado"))
oDataReader.Close() 'Cierro el DataReader para que pueda ser ejecutado otro
End Using
End SubPublic Sub Insertar(usuario As usuario)
Using conn As New SqlConnection(ConfigurationManager.ConnectionStrings("sacifConnectionString").ToString())
conn.Open()
Try
Dim cmd As New SqlCommand("InsertarUsuario", conn)
cmd.CommandType = CommandType.StoredProcedure
cmd.Parameters.AddWithValue("@idperfil", usuario.usu_idperfil)
cmd.Parameters.AddWithValue("@idempleado", intnombre)
cmd.Parameters.AddWithValue("@idempresa", usuario.usu_idempresa)cmd.ExecuteNonQuery()
Catch ex As Exception
System.Console.Write(ex.Message)
End Try
End Using- Editado Dominio69 martes, 10 de mayo de 2016 3:16
- Editado José De AlvaModerator lunes, 30 de mayo de 2016 16:43 correccion de titulo
Respuestas
-
Hola Dominio69,
¿Cómo estas cargando el objeto ComboBox?
El objeto debería contener el texto descriptivo asociado al identificador, esto lo logras configurando las propiedades: DisplayMember y ValueMember, de tal manera que por cada elemento seleccionado no hagas una petición al servidor de datos para obtener el id, es innecesario.
Entendiendo que el objeto ComboBox contiene tanto el texto descriptivo como el identificador para un elemento seleccionado puedes pasar ese valor como argumento del parámetro @idempleado, algo como:
cmd.Parameters.AddWithValue("@idempleado", Convert.ToInt32(cboEmpleado.SelectedValue))
- Editado Willams Morales martes, 10 de mayo de 2016 3:31
- Propuesto como respuesta José De AlvaModerator lunes, 16 de mayo de 2016 17:32
- Marcado como respuesta José De AlvaModerator lunes, 30 de mayo de 2016 16:48
-
hola
Porque en el titulo de la pregunta mencionas a dropbox si despues el planteo del problema no relacion ? edita la pregunta y define un titulo adecuado
dropbox es un sitio para subir archivos a la nube, si te refieres a un combobox o dropdownlist define esto en el titulo de la pregunta
>>quiero saber de que manera puedo controlar esta variable para poder guardarla en un registro
si asignas al metodo Insertar() un parametro con una entidad "usuario" deberias usar esta y solo esta dentro del metodo, no accedas a controles de forma directa
asigna a la entidad usuario el valor de los controles como ser
Dim usr As New Usuario usr.IdEmpleado = CInt(comboId.SelectedValue) //resto propiedades Insertar(usr)
no definas variables globales porque rompes con la responsabilidad del metodo
cmd.Parameters.AddWithValue("@idempleado", usuario.IdEmpleado)
Si defines clases recuerda poner las propeidades para asignar los valores
saludos
Leandro Tuttini
Blog
MVP Profile
Buenos Aires
Argentina- Propuesto como respuesta José De AlvaModerator lunes, 16 de mayo de 2016 17:32
- Marcado como respuesta José De AlvaModerator lunes, 30 de mayo de 2016 16:48
Todas las respuestas
-
Hola Dominio69,
¿Cómo estas cargando el objeto ComboBox?
El objeto debería contener el texto descriptivo asociado al identificador, esto lo logras configurando las propiedades: DisplayMember y ValueMember, de tal manera que por cada elemento seleccionado no hagas una petición al servidor de datos para obtener el id, es innecesario.
Entendiendo que el objeto ComboBox contiene tanto el texto descriptivo como el identificador para un elemento seleccionado puedes pasar ese valor como argumento del parámetro @idempleado, algo como:
cmd.Parameters.AddWithValue("@idempleado", Convert.ToInt32(cboEmpleado.SelectedValue))
- Editado Willams Morales martes, 10 de mayo de 2016 3:31
- Propuesto como respuesta José De AlvaModerator lunes, 16 de mayo de 2016 17:32
- Marcado como respuesta José De AlvaModerator lunes, 30 de mayo de 2016 16:48
-
hola
Porque en el titulo de la pregunta mencionas a dropbox si despues el planteo del problema no relacion ? edita la pregunta y define un titulo adecuado
dropbox es un sitio para subir archivos a la nube, si te refieres a un combobox o dropdownlist define esto en el titulo de la pregunta
>>quiero saber de que manera puedo controlar esta variable para poder guardarla en un registro
si asignas al metodo Insertar() un parametro con una entidad "usuario" deberias usar esta y solo esta dentro del metodo, no accedas a controles de forma directa
asigna a la entidad usuario el valor de los controles como ser
Dim usr As New Usuario usr.IdEmpleado = CInt(comboId.SelectedValue) //resto propiedades Insertar(usr)
no definas variables globales porque rompes con la responsabilidad del metodo
cmd.Parameters.AddWithValue("@idempleado", usuario.IdEmpleado)
Si defines clases recuerda poner las propeidades para asignar los valores
saludos
Leandro Tuttini
Blog
MVP Profile
Buenos Aires
Argentina- Propuesto como respuesta José De AlvaModerator lunes, 16 de mayo de 2016 17:32
- Marcado como respuesta José De AlvaModerator lunes, 30 de mayo de 2016 16:48