Combobox dependientes

Iniciado por SilverLycan68, 5 Mayo 2018, 02:09 AM

0 Miembros y 1 Visitante están viendo este tema.

SilverLycan68

Buenas tardes.
Estoy haciendo 2 combobox uno dependiente del anterior desde una base de datos. El combobox1 se llena correctamente, pero el combobox2 añade los elementos cada vez que cambio la selección del combobox1.
¿Cuál es mi error si quiero que sólo muestre las opciones de lo que estoy seleccionando?
Código (vbnet) [Seleccionar]

'Cargar el combobox1'
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        Dim con As New MySqlConnection
        con.ConnectionString =  ("Server=localhost;DataBase=autos;uid=root;pwd=root").ToString
        con.Open()
        Dim query As String = "select distinct MARCA from autos"
        Dim cmd As New MySqlCommand(query, con)
        Dim reader As MySqlDataReader = cmd.ExecuteReader
        While reader.Read
            ComboBox1.Items.Add(reader.GetString("MARCA"))
        End While

        End Sub
'Cargar combobox2 dependiendo selección de combobox1'
Private Sub ComboBox1_SelectionChangeCommitted(sender As Object, e As EventArgs) Handles ComboBox1.SelectionChangeCommitted
        Dim con As New MySqlConnection
        con.ConnectionString = ("Server=localhost;DataBase=autos;uid=root;pwd=root").ToString
        con.Open()
        Dim query As String = "select MODELO from autos where MARCA='" + ComboBox1.SelectedItem + "'"
        Dim cmd As New MySqlCommand(query, con)
        Dim reader As MySqlDataReader = cmd.ExecuteReader
        While reader.Read
            ComboBox2.Items.Add(reader.GetString("MODELO"))

        End While

    End Sub


Eleкtro

#1
Cita de: SilverLycan68 en  5 Mayo 2018, 02:09 AMel combobox2 añade los elementos cada vez que cambio la selección del combobox1

Código (vbnet) [Seleccionar]
...
While reader.Read
   ComboBox2.Items.Add(reader.GetString("MODELO"))
End While
...


Tú mismo estás diciendo lo que hace el código, ahora pregúntate lo que no hace o faltaría por hacer: eliminar los elementos previamente agregados a la colección de elementos del ComboBox...


O bien puedes optar por establecer un origen de datos y así simplificar la adición y eliminación de dichos elementos...


Saludos.