Buscar en Google
Busca en Todo Vb-Net
Búsqueda personalizada
miércoles, 2 de junio de 2010
ComboBox Dependientes [VB.Net]
Añadir un dataset a un ComboBox [VB.Net]
Para el ejemplo se usaran datos extraidos desde una BD MySQL
La tematica del ejemplo es simple, siempre con la misma filosofia añadir dataset a un combo luego realizar indexacion para realizar una neva busqueda y alimentar un nuevo dataset el cual sera asignado a su vez a otro combo.
espacios de nombres a importar
Imports MySql.Data.MySqlClient
Declaraciones
Public AdapterCats As MySqlDataAdapter
Public AdapterSubCats As MySqlDataAdapter
Public CDatasetCats As DataSet
Public CDatasetSubCats As DataSet
' Primero en el evento load del formulario hacemos el llenado del Combo categorias
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Try
AdapterCats = New MySqlDataAdapter("SELECT CATEGORIA, NOMBRE FROM.CATEGORIA", MyConex)
CDatasetCats = New DataSet()
MyConex.Open()
AdapterCats.Fill(CDatasetCats, "CATS")
MyConex.Close()
CmbCategoria.DataSource = CDatasetCats.Tables("CATS")
CmbCategoria.DisplayMember = CDatasetCats.Tables("CATS").Columns("NOMBRE").ToString
CmbCategoria.ValueMember = CDatasetCats.Tables("CATS").Columns("CATEGORIA").ToString
Catch oexcep As MySqlException
MessageBox.Show("Error al conectar con BD o actualizar, Proceso: Consultando datos " & _
ControlChars.CrLf & _
oexcep.Message & ControlChars.CrLf)
MyConex.Close()
End Try
End Sub
Luego en el evento de cambio de indice del combo hacemos el llenado del la subcategorias, recordemos que una categoria puede tener 'n' subcategorias
Private Sub CmbCategoria_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CmbCategoria.SelectedIndexChanged
Dim CatBuscar As String
CatBuscar = CDatasetCats.Tables("CATS").Rows(CmbCategoria.SelectedIndex)("CATEGORIA")
Try
AdapterSubCats = New MySqlDataAdapter("SELECT SUBCAT, NOMBRE FROM " & BaseDatos & ".SUBCATEGORIA WHERE CATEGORIA = '" & CatBuscar & "'", MyConex)
CDatasetSubCats = New DataSet()
MyConex.Open()
AdapterSubCats.Fill(CDatasetSubCats, "SUBCATS")
MyConex.Close()
CmbSubcategoria.DataSource = CDatasetSubCats.Tables("SUBCATS")
CmbSubcategoria.DisplayMember = CDatasetSubCats.Tables("SUBCATS").Columns("NOMBRE").ToString
CmbSubcategoria.ValueMember = CDatasetSubCats.Tables("SUBCATS").Columns("SUBCAT").ToString
Catch oexcep As MySqlException
MessageBox.Show("Error al conectar con BD o actualizar, Proceso: Consultando datos " & _
ControlChars.CrLf & _
oexcep.Message & ControlChars.CrLf)
MyConex.Close()
End Try
End Sub
Esto ha sido todooooooo... dudas o comentarios a cesarlopez1909@gmail.com
Suscribirse a:
Enviar comentarios (Atom)
Muchas gracias de verdad agradezco mucho tu tiempo por subir este ejemplo.
ResponderEliminarMuchas Gracias
ResponderEliminarhola ,tengo una duda en cuanto al codigo..me parecio muy util,use base de datos sql server 2008 y vb .net 2010. El tema es que me muestra los dos combos a la ves..y si selecciono el primero no se modifica nada el segundo... mi caso es que tengo dos tablas ..localidad y barrio..es decir q segun la localidad te muestra los barrios de esa localidad. pero cuando lo ejecuto al programa me muestra los dos combos a la ves,como si no estuviera filtrando para el segundo combo.Te podria mandar el codigo asi lo veas? muchas gracias desde ya.Saludos.
ResponderEliminar