Foros del Web » Programación para mayores de 30 ;) » .NET »

Como enlazo 2 combobox ! c/u con tablas distintas

Estas en el tema de Como enlazo 2 combobox ! c/u con tablas distintas en el foro de .NET en Foros del Web. Buenas ! Como andan? Aqui ando de nuevo molestandolos .. Espero puedan ayudarm otra vz.! Tengo 2 combobox.. "proveedor" y "producto".. Lo que intento hacer ...
  #1 (permalink)  
Antiguo 02/07/2012, 11:33
 
Fecha de Ingreso: junio-2012
Ubicación: Caracas-Venezuela
Mensajes: 114
Antigüedad: 11 años, 10 meses
Puntos: 0
Pregunta Como enlazo 2 combobox ! c/u con tablas distintas

Buenas ! Como andan?

Aqui ando de nuevo molestandolos .. Espero puedan ayudarm otra vz.!

Tengo 2 combobox.. "proveedor" y "producto".. Lo que intento hacer es que al elegir un proveedor me muestre en el combobox "producto" unicamente los productos que proporciona ese proveedor..

Aqui les dejo el codigo que tngo:

Código vb:
Ver original
  1. Private Sub cboproveedor_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cboproveedor.SelectedIndexChanged
  2.         Dim dt As New DataTable
  3.         Dim conexion As New MySqlConnection("Server=localhost; Database=controlsmi; user=root; password=Smi2012") 'cadena conexion
  4.        Dim consulta As String = "SELECT  ID_producto, nombre FROM producto where Id_proveedor=" + cboproveedor.SelectedValue.ToString  'consulta a la tabla
  5.        Dim comando As New MySqlCommand(consulta, conexion)
  6.         Dim adap As New MySqlDataAdapter(comando)
  7.  
  8.         conexion.Open()
  9.         adap.Fill(dt)
  10.         conexion.Close()
  11.  
  12.         cboproducto.DataSource = dt
  13.         cboproducto.DisplayMember = "nombre"
  14.         cboproducto.ValueMember = "nombre"
  15.     End Sub

Al ejecutarlo me da error en " adap.Fill(dt)
"
.. .. y buenoo no se que mas hacer..

Gracias de antemano por su tiempo y atencion . Saludos
Pd: BD mysql y trabajo con Windowsforms
__________________
David`Novato
  #2 (permalink)  
Antiguo 02/07/2012, 13:18
 
Fecha de Ingreso: abril-2011
Mensajes: 1.342
Antigüedad: 13 años
Puntos: 344
Respuesta: Como enlazo 2 combobox ! c/u con tablas distintas

Buenas,

¿Puedes indicarnos que error te marca?

Saludos.
  #3 (permalink)  
Antiguo 02/07/2012, 13:25
 
Fecha de Ingreso: junio-2012
Ubicación: Caracas-Venezuela
Mensajes: 114
Antigüedad: 11 años, 10 meses
Puntos: 0
Respuesta: Como enlazo 2 combobox ! c/u con tablas distintas

Buenoo ya intentando he intentando logre hacerlo de una manera un poco distinta.. ahora el problema es que solo me muestra un producto!! cuando hay proveedores que tiene de 2 a 3 productos.. y no hallo la forma de que m muestre todos los productos de dicho proveedor..

Aca les dejo el codigo:

2 public function...

Código vb:
Ver original
  1. Public Function carga_proveedor() As DataTable
  2.         Dim dt As New DataSet
  3.         Dim conexion As New MySqlConnection("Server=localhost; Database=controlsmi; user=root; password=Smi2012") 'cadena conexion
  4.        Dim consulta As String = "SELECT  ID_proveedor, nombre FROM proveedor" 'consulta a la tabla
  5.        Dim adap As New MySqlDataAdapter(consulta, conexion)
  6.         adap.Fill(dt, "proveedor")
  7.         Return dt.Tables(0)
  8.     End Function

Código vb:
Ver original
  1. Public Function producto_carga(ByVal id As String) As DataTable
  2.         Dim ds As New DataSet
  3.         Dim conexion As New MySqlConnection("Server=localhost; Database=controlsmi; user=root; password=Smi2012") 'cadena conexion
  4.        Dim SelectedValue As String = "SELECT  ID_producto, nombre FROM producto where Id_producto=" + id  'consulta a la tabla"
  5.        Dim adap As New MySqlDataAdapter(SelectedValue, conexion)
  6.         conexion.Open()
  7.         adap.Fill(ds, "nombre")
  8.         conexion.Close()
  9.         Return ds.Tables(0)
  10.     End Function

Y aca el SelectedIndexChanged

Código vb:
Ver original
  1. Private Sub cboproveedor_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cboproveedor.SelectedIndexChanged
  2.         Try
  3.             Dim ds As New DataTable
  4.             ds = producto_carga(cboproveedor.SelectedValue.ToString())
  5.             cboproducto.DataSource = ds
  6.             cboproducto.DisplayMember = "nombre"
  7.             cboproducto.ValueMember = "ID_producto"
  8.  
  9.         Catch ex As Exception
  10.             Return
  11.         End Try
  12.     End Sub

Repito: Selecciono 1 proveedor y me muestra el producto de ese proveedor, pero solo me muestra UNO SOLO... cuando hay proveedores que tienen hasta 3 productos...
__________________
David`Novato
  #4 (permalink)  
Antiguo 02/07/2012, 13:30
 
Fecha de Ingreso: abril-2011
Mensajes: 1.342
Antigüedad: 13 años
Puntos: 344
Respuesta: Como enlazo 2 combobox ! c/u con tablas distintas

Sólo te muestra un producto porque la condición que has puesto en el where es:

Código:
where Id_producto=
cuando debería ser por proveedor.

Depende de como tengas hecha la base de datos, será de una u otra forma.

Por ejemplo, suponiendo que existe un campo Id_Proveedor en la tabla de Productos, sería:

Código:
SELECT  ID_producto, nombre FROM producto where Id_proveedor=" + id
  #5 (permalink)  
Antiguo 02/07/2012, 13:33
 
Fecha de Ingreso: abril-2010
Ubicación: Lima-Peru
Mensajes: 96
Antigüedad: 14 años
Puntos: 2
Respuesta: Como enlazo 2 combobox ! c/u con tablas distintas

tu error esta en la consulta.
  #6 (permalink)  
Antiguo 02/07/2012, 13:36
 
Fecha de Ingreso: junio-2012
Ubicación: Caracas-Venezuela
Mensajes: 114
Antigüedad: 11 años, 10 meses
Puntos: 0
Respuesta: Como enlazo 2 combobox ! c/u con tablas distintas

Tenias Razon hermanazo.!!!! ..!Bien por esaa alexg88.!! Ahora si funcionaaa.! Muchas Gracias
__________________
David`Novato

Etiquetas: combobox, distintas, sql, tabla, tablas, windows
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:32.