Hola amigos hoy vamos hacer que dependiendo de la selección de un item del ComboBox nos obtenga en el otro ComboBox ciertos resultados.
En este ejemplo tengo una lista de estados por defecto para que el usuario escoja uno. En el otro Combobox se va generar la lista de municipios dependiendo del estado seleccionado.
Aqui unas imagenes de ejemplo
Bueno vamos con el código primero nuestra base de datos.
create database ComboBox use ComboBox create table Estados ( id_estado int primary key identity, estado varchar(80) not null ) create table Municipios ( id_municipio int primary key identity, id_estado int CONSTRAINT fk_Estados FOREIGN KEY (id_estado) REFERENCES Estados(id_estado), municipio varchar(80) not null ) insert into Estados(estado) values('Coahuila') insert into Estados(estado) values('Nuevo León') insert into Estados(estado) values('Durango') insert into Municipios(id_estado,municipio) values(1,'Torreon') insert into Municipios(id_estado,municipio) values(1,'Abasolo') insert into Municipios(id_estado,municipio) values(1,'Monclova') insert into Municipios(id_estado,municipio) values(2,'Monterrey') insert into Municipios(id_estado,municipio) values(2,'Apodaca') insert into Municipios(id_estado,municipio) values(2,'Escobedo') insert into Municipios(id_estado,municipio) values(3,'Gomez Palacio') insert into Municipios(id_estado,municipio) values(3,'Lerdo') insert into Municipios(id_estado,municipio) values(3,'Mapimi')
Aqui el código implementado en C#
namespace ComboBox { public partial class Form1 : Form { //Nuestra conexión SqlConnection conexion = new SqlConnection("Data Source=MISAEL-PC; Initial Catalog = ComboBox; Integrated Security = True"); public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { //Método que obtiene los estados al iniciar el programa ObtenerEstados(); } public void ObtenerEstados() { DataSet das = new DataSet(); SqlDataAdapter adp = new SqlDataAdapter("SELECT * FROM Estados", conexion); adp.Fill(das, "Estados"); comboBox1.DataSource = das.Tables[0].DefaultView; comboBox1.DisplayMember = "estado"; comboBox1.ValueMember = "id_estado"; } //Método que obtiene los estados segun el estado seleccionado public void ObtenerMunicipios(int estado) { DataSet das = new DataSet(); SqlDataAdapter adp = new SqlDataAdapter("SELECT municipio FROM Municipios WHERE id_estado='" + estado + "'", conexion); adp.Fill(das, "Municipios"); comboBox2.DataSource = das.Tables[0].DefaultView; comboBox2.DisplayMember = "municipio"; } //Utilizamos el evento SelectionChangeCommitted para cuando se ha cambiado el elemento seleccionado y se confirma el //cambio de estado en el ComboBox private void comboBox1_SelectionChangeCommitted(object sender, EventArgs e) { ObtenerMunicipios(Convert.ToInt32(comboBox1.SelectedValue)); } } }
No hay comentarios:
Publicar un comentario