[ Foro de C# ]

Cargar datos de tablas en Combobox

05-Oct-2013 07:43
Invitado (Pato)
3 Respuestas

Saludos Cordiales

Quiero cargar datos en Combobox de unas tres tablas que tengo en una BD y están enlazados entre sí.
Tengo las tablas:
Pais:
Pais1
Pais2

Estado:
Estado1 (Pertenece a Pais1)
Estado2 (Pertenece a Pais1)
Estado3 (Pertenece a Pais2)

Ciudad:
Ciudad1 (Pertenece a Estado1)
Ciudad2 (Pertenece a Estado1)
Ciudad3 (Pertenece a Estado1)
Ciudad4 (Pertenece a Estado1)

Ahora cómo podría mostrar estos datos de la siguiente manera: Que cuando selecciono en mi primer combobox1 el pais1, se me cargue en el siguiente combobox2 todos los estados pertenecientes solo a ese país, y de la misma manera que cuando seleccione un estado se me carguen todas la ciudades pertenecientes solo a ese estado.

Actualmente estoy mostrando en los combobox todos los datos que tengo en las tablas, pero el problema es ese, que cuando seleccione determinado dato me deberían cargar los datos que pertenecen a los foreign key de ese dato.

Alguien talvez me puede ayudar?? Alguna idea??




06-Oct-2013 12:16
Nacho Cabanes (+31)

La forma exacta de conseguirlo dependerá del entorno gráfico que uses (¿Windows Forms?) y del gestor de bases de datos (¿SQL Server?)

Si hablamos de Windows Forms y estás usando Visual Studio, podrás usar la ventana de "Propiedades" del editor para saber qué eventos están relacionados con cada componente visual. Por ejemplo, para un ComboBox (y otros componentes visuales) tendrás un evento TextChanged, que te permite realizar una acción cuando cambie su contenido. En tu caso, esa acción sería rellenar los datos de otro ComboBox a partir del valor actual del ComboBox que estás observando.


08-Oct-2013 03:05
Invitado (Pato)

Saludos, gracias por tu respuesta, en efecto trabajo con visual studio y sql server, en una aplicacion de windows forms, ahora la pregunta es como lo hago, eh buscado información y eh encontrado algo parecido a lo que tu te explicas pero cómo hacerlo desde cero me podrías ayudar con un concepto más claro talvez??


12-Oct-2013 21:56
Nacho Cabanes (+31)

Un ejemplo básico, sin usar SQL Server, sólo con los dos ComboBox, para que veas cómo cambiar el valor de uno a partir de lo que ocurra en el otro:

Creas un ComboBox, llamado "comboBox1", y un segundo llamado "comboBox2". Seleccionas el primero, haciendo clic en él. En la ventana de "Propiedades", haces clic en el "rayo" para ver la lista de "Eventos". Entre los posibles eventos, verás uno llamado "TextChanged". Si haces doble clic en él, te aparecerá la "vista de código" de tu formulario, en vez de la vista de diseño, y en ella verás un nuevo método, vacío, llamado "comboBox1_TextChanged". Dentro de él puedes escribir:

 
comboBox2.Text = comboBox1.Text;
 


A partir de entonces, cada cosa que escribas en el "comboBox1" aparecerá también en el ""comboBox2". Lo mismo ocurriría si escoges un valor de la lista (esto puedes probarlo si das algún valor a su propiedad "items", desde la misma ventana de "propiedades" del diseñador visual).







(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)