none
como hago

    Pregunta

  • tengo un combobox necesito que ese combo me retorne el id de la empresa que se mustra

    este es el combo cuando lo lleno y lo mando a buscar por letra

     Private Sub cargarempresa()
            cmbempresa.DataSource = capanegocio.listadoempresa.Tables("empresa")
            cmbempresa.DisplayMember = "Nombre"
            cmbempresa.ValueMember = "idempresa"
        End Sub

      Public Function listadoempresa() As DataSet
            Using conn As New MySqlConnection(ConfigurationManager.ConnectionStrings("cn").ToString())
                conn.Open()
                Dim da As MySqlDataAdapter
                Dim ds As New DataSet
                Dim commnado As New MySqlCommand
                Try
                    da = New MySqlDataAdapter("mostrar_empresa", conn)
                    da.Fill(ds, "empresa")
                    ds.Dispose()
                    da.Dispose()
                Catch ex As Exception
                    MsgBox(ex.Message)
                End Try
                Return ds
            End Using
        End Function

    miércoles, 12 de octubre de 2016 3:00

Respuestas

  • Hola Dominio69,

    Te muestra algún error ?

    Asumo que estás usando un StoredProcedure, por lo que podrías mejorar tu código :

          Public Function listadoempresa() As DataTable
            Using conn As New MySqlConnection(ConfigurationManager.ConnectionStrings("cn").ToString())
                Try
                    Dim da As New MySqlDataAdapter("mostrar_empresa", conn)
                    da.SelectCommand.CommandType = CommandType.StoredProcedure
    
                    Dim dt As New DataTable
                    da.Fill(dt)
    
                    Return dt
    
                Catch ex As Exception
                    MsgBox(ex.Message)
                    Return Nothing
                End Try
            End Using
        End Function

    Y al llamarlo :

           Dim dtEmpresa As DataTable = capanegocio.listadoempresa
    
            If dtEmpresa IsNot Nothing Then
                cmbempresa.DataSource = dtEmpresa
                cmbempresa.DisplayMember = "Nombre"
                cmbempresa.ValueMember = "idempresa"
            End If

    Y para obtener el idempresa del valor actual :

     'Obtener el valor del comboBox seleccionado
      Dim id As Integer = CInt(cmbempresa.SelectedValue)

    Dónde asumo que el id es de tipo entero, en caso no fuese cambiar el tipo de conversión.

    Saludos.


    JC NaupaCrispín
    Lima - Perú

    La magia no existe, la programación SI

    • Marcado como respuesta Dominio69 miércoles, 12 de octubre de 2016 3:50
    miércoles, 12 de octubre de 2016 3:11

Todas las respuestas

  • Hola Dominio69,

    Te muestra algún error ?

    Asumo que estás usando un StoredProcedure, por lo que podrías mejorar tu código :

          Public Function listadoempresa() As DataTable
            Using conn As New MySqlConnection(ConfigurationManager.ConnectionStrings("cn").ToString())
                Try
                    Dim da As New MySqlDataAdapter("mostrar_empresa", conn)
                    da.SelectCommand.CommandType = CommandType.StoredProcedure
    
                    Dim dt As New DataTable
                    da.Fill(dt)
    
                    Return dt
    
                Catch ex As Exception
                    MsgBox(ex.Message)
                    Return Nothing
                End Try
            End Using
        End Function

    Y al llamarlo :

           Dim dtEmpresa As DataTable = capanegocio.listadoempresa
    
            If dtEmpresa IsNot Nothing Then
                cmbempresa.DataSource = dtEmpresa
                cmbempresa.DisplayMember = "Nombre"
                cmbempresa.ValueMember = "idempresa"
            End If

    Y para obtener el idempresa del valor actual :

     'Obtener el valor del comboBox seleccionado
      Dim id As Integer = CInt(cmbempresa.SelectedValue)

    Dónde asumo que el id es de tipo entero, en caso no fuese cambiar el tipo de conversión.

    Saludos.


    JC NaupaCrispín
    Lima - Perú

    La magia no existe, la programación SI

    • Marcado como respuesta Dominio69 miércoles, 12 de octubre de 2016 3:50
    miércoles, 12 de octubre de 2016 3:11
  • Dominio69,

    Para obtener el valor que identifica a cada elemento de la colección ('idempresa') debes usar la función SelectedValue.

    Dim idEmpresa As Integer = Convert.ToInt32(cmbEmpresa.SelectedValue)

    Por otro lado, el procedimiento 'listadoempresa()' debería devolver un tipo DataTable, no es necesario retornar un tipo DataSet.


    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.
    miércoles, 12 de octubre de 2016 3:16