Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: SilverLycan68 en 5 Mayo 2018, 02:09 am



Título: Combobox dependientes
Publicado por: SilverLycan68 en 5 Mayo 2018, 02:09 am
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
  1. 'Cargar el combobox1'
  2. Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
  3.        Dim con As New MySqlConnection
  4.        con.ConnectionString =  ("Server=localhost;DataBase=autos;uid=root;pwd=root").ToString
  5.        con.Open()
  6.        Dim query As String = "select distinct MARCA from autos"
  7.        Dim cmd As New MySqlCommand(query, con)
  8.        Dim reader As MySqlDataReader = cmd.ExecuteReader
  9.        While reader.Read
  10.            ComboBox1.Items.Add(reader.GetString("MARCA"))
  11.        End While
  12.  
  13.        End Sub
  14. 'Cargar combobox2 dependiendo selección de combobox1'
  15. Private Sub ComboBox1_SelectionChangeCommitted(sender As Object, e As EventArgs) Handles ComboBox1.SelectionChangeCommitted
  16.        Dim con As New MySqlConnection
  17.        con.ConnectionString = ("Server=localhost;DataBase=autos;uid=root;pwd=root").ToString
  18.        con.Open()
  19.        Dim query As String = "select MODELO from autos where MARCA='" + ComboBox1.SelectedItem + "'"
  20.        Dim cmd As New MySqlCommand(query, con)
  21.        Dim reader As MySqlDataReader = cmd.ExecuteReader
  22.        While reader.Read
  23.            ComboBox2.Items.Add(reader.GetString("MODELO"))
  24.  
  25.        End While
  26.  
  27.    End Sub
  28.  


Título: Re: Combobox dependientes
Publicado por: Eleкtro en 5 Mayo 2018, 06:37 am
el combobox2 añade los elementos cada vez que cambio la selección del combobox1

Código
  1. ...
  2. While reader.Read
  3.    ComboBox2.Items.Add(reader.GetString("MODELO"))
  4. End While
  5. ...

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...

  • MSDN - ComboBox.ObjectCollection.Clear Method (https://msdn.microsoft.com/en-us/library/system.windows.forms.combobox.objectcollection.clear%28v=vs.110%29.aspx)

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

  • MSDN - ComboBox.DataSource Property (https://msdn.microsoft.com/en-us/library/x8160f6f(v=vs.90).aspx)

Saludos.