VB.NET ComboBox y etiqueta sincronizados desde SQL Server
Estoy tratando de sincronizar la lectura de una tabla de SQL Server con 2 columnas (nomunidad y coutunidad).
La primera columna (nomunidad) se llenará en un combobox y quiero que la segunda columna (coutunidad) se sincronice en una etiqueta con el primer combobox (es decir, cuando cambio el valor del combobox, la etiqueta también debería cambiar haciendo referencia a la tabla).
Puedo hacer esto con 2 comboboxes:
Dim connection As New SqlConnection("Data Source=xxx")
Dim dt As New DataTable
Dim sqlquery As String
connection.Open()
sqlquery = "select * from liste_unités"
Dim SQL As New SqlDataAdapter(sqlquery, connection)
SQL.Fill(dt)
Dim cmd As New SqlCommand(sqlquery, connection)
ComboBoxC1L1.DataSource = dt
ComboBoxC1L1.DisplayMember = "nom_unité"
ComboBox1.DataSource = dt
ComboBox1.DisplayMember = "cout_unité"
pero no sé cómo hacerlo con una etiqueta (en lugar de ComboBox1).
Creo que puedo lograrlo con algo como esto:
Dim sqlcmd As New SqlCommand("select * from liste_unités", connection)
Dim myreader As SqlDataReader
myreader = sqlcmd.ExecuteReader()
myreader.Read()
If myreader.HasRows Then
Label1.Text = myreader.Item("cout_unité").ToString
End If
pero esto solo lee la primera fila y no cambia el valor de la etiqueta cuando cambia el valor seleccionado del primer combobox.
¿Cuál es la forma más fácil y eficiente de hacerlo?
davy.ai
Para sincronizar la segunda columna (cout_unité) con el valor seleccionado del primer combobox (nom_unité), puedes utilizar el evento
SelectedIndexChanged
del combobox para actualizar el valor de la etiqueta.Aquí tienes un ejemplo de código:
“`vb.net
Private Sub ComboBoxC1L1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboBoxC1L1.SelectedIndexChanged
Dim selectedRow As DataRowView = ComboBoxC1L1.SelectedItem
Dim cout As Decimal = selectedRow.Row.Field(Of Decimal)(“cout_unité”)
Label1.Text = cout.ToString()
End Sub
Esto le indica al combobox qué columna utilizar como valor para cada elemento de la lista.