none
Como hacer que al seleccionar algo de un combobox me mande informacioned a Distintos textbox (Vb.net, Mysql) RRS feed

  • Pregunta

  • Lo que necesito es que al momento de seleccionar algo del combobox me mande varias informaciones a los textbox. Por ejemplo tengo la tabla producto (atributos: nombre, tiempo, precio). En el combobox tengo cargado el nombre solamente. ¿Cómo hago que al momento de seleccionar el nombre del producto en el combobox mande el tiempo y los meses a dos textbox respectivamente?
    jueves, 10 de mayo de 2018 22:47

Respuestas

  • Te muestro una forma de hacer lo que pretendes. En el evento 'SelectedValueChanged' del ComboBox

    Dim dt As New DataTable
    Dim iCliente As Integer = 0
    
    'Obtenemos el identificador del cliente seleccionado en el ComboBox
    Integer.TryParse(cboClientes.SelectedValue.ToString, iCliente)
    
    'Consulta a la BBDD segun el identificador del cliente
    sSql = String.Format("SELECT Titular, Direccion, telefono FROM tbClientes " _
                       & "WHERE (idCliente = {0})", iCliente)
    
    'Cargamos en el DataTable los datos de la consulta
    dt = ObtenerDataTable(sSql)
    If dt.Rows.Count > 0 Then
        'Asignamos a los TextBox los datos de la consulta.
        txtTitular.Text = CInt(dt.Rows(0)("Titular"))
        txtDireccion.Text = CInt(dt.Rows(0)("Direccion"))
        txtTelefono.Text = CInt(dt.Rows(0)("telefono"))
    End If
    
    
    Public Function ObtenerDataTable(ByVal mSql As String) As Data.DataTable
       'cnn -> cadena de conexion a la BBDD.
       Dim cmd As SqlCommand = New SqlCommand
       Dim da As SqlDataAdapter
       Dim dt As Data.DataTable
       Using cnnBBDD As New SqlConnection(cnn)
          Try
             cmd = New SqlCommand(mSql, cnnBBDD)
             cmd.Connection = cnnBBDD
             cnnBBDD.Open()
             cmd.ExecuteNonQuery()
             da = New SqlDataAdapter(cmd)
             dt = New Data.DataTable
             da.Fill(dt)
             cnnBBDD.Close()
          Catch ex As Exception
             dt = Nothing
          End Try
          Return dt
       End Using
    End Function
    


    viernes, 11 de mayo de 2018 6:50

Todas las respuestas

  • Te muestro una forma de hacer lo que pretendes. En el evento 'SelectedValueChanged' del ComboBox

    Dim dt As New DataTable
    Dim iCliente As Integer = 0
    
    'Obtenemos el identificador del cliente seleccionado en el ComboBox
    Integer.TryParse(cboClientes.SelectedValue.ToString, iCliente)
    
    'Consulta a la BBDD segun el identificador del cliente
    sSql = String.Format("SELECT Titular, Direccion, telefono FROM tbClientes " _
                       & "WHERE (idCliente = {0})", iCliente)
    
    'Cargamos en el DataTable los datos de la consulta
    dt = ObtenerDataTable(sSql)
    If dt.Rows.Count > 0 Then
        'Asignamos a los TextBox los datos de la consulta.
        txtTitular.Text = CInt(dt.Rows(0)("Titular"))
        txtDireccion.Text = CInt(dt.Rows(0)("Direccion"))
        txtTelefono.Text = CInt(dt.Rows(0)("telefono"))
    End If
    
    
    Public Function ObtenerDataTable(ByVal mSql As String) As Data.DataTable
       'cnn -> cadena de conexion a la BBDD.
       Dim cmd As SqlCommand = New SqlCommand
       Dim da As SqlDataAdapter
       Dim dt As Data.DataTable
       Using cnnBBDD As New SqlConnection(cnn)
          Try
             cmd = New SqlCommand(mSql, cnnBBDD)
             cmd.Connection = cnnBBDD
             cnnBBDD.Open()
             cmd.ExecuteNonQuery()
             da = New SqlDataAdapter(cmd)
             dt = New Data.DataTable
             da.Fill(dt)
             cnnBBDD.Close()
          Catch ex As Exception
             dt = Nothing
          End Try
          Return dt
       End Using
    End Function
    


    viernes, 11 de mayo de 2018 6:50
  • En la parte de: If dt.Rows.Count > 0 Then me aparece lo siguiente:

    El código de usuario no controló NullReferenceException

    Referencia a objeto no establecida como instancia de un objeto

    ¿Qué debo hacer en ese caso?

    sábado, 12 de mayo de 2018 15:02
  • pon el código dentro de un try...Catch... End Try

          Try
             dt = ObtenerDataTable(sSql)
             If dt.Rows.Count > 0 Then
                'Asignamos a los TextBox los datos de la consulta.
                txtTitular.Text = CInt(dt.Rows(0)("Titular"))
                txtDireccion.Text = CInt(dt.Rows(0)("Direccion"))
                txtTelefono.Text = CInt(dt.Rows(0)("telefono"))
             End If
          Catch ex As Exception
             Exit Try
          End Try
    
    revisa que la consulta SQL devuelve valores correctos.
    lunes, 14 de mayo de 2018 9:01