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

Llenar combobox con 2 tablas

Estas en el tema de Llenar combobox con 2 tablas en el foro de .NET en Foros del Web. Gente, tengo una duda con esto: Tengo 2 tablas relacionadas con el codigo postal: Sucursal IDsuc, domicilio, codigo_postal, telefono Localidad codigo_postal, localidad El tema es ...
  #1 (permalink)  
Antiguo 14/10/2010, 16:46
 
Fecha de Ingreso: junio-2010
Mensajes: 17
Antigüedad: 14 años, 5 meses
Puntos: 0
Llenar combobox con 2 tablas

Gente, tengo una duda con esto:

Tengo 2 tablas relacionadas con el codigo postal:

Sucursal
IDsuc, domicilio, codigo_postal, telefono

Localidad
codigo_postal, localidad

El tema es que yo quiero mostrar en un Combobox las localidades de las sucursales pero cuando yo seleccione una localidad quiero que el "value member" sea el de la sucursal (o sea, el IDsuc).
Entonces yo lo que hice fue lo siguiente:

Código:
Public Function listarSucursales() as DataTable
   Dim dt as New DataTable
   Dim query as String = "SELECT s.IDsuc, l.localidad FROM Sucursal s, Localidad l, WHERE s.codigo_postal = l.codigo_postal"
   dt = Obtener_datos(query) ---> Esto me trae los datos, funciona OK
   Return dt
End Function

En el Form:

Dim dt as New DataTable = listarSucursales()
cmbSucursales.Items.Clear()

If dt.Rows.Count > 0 Then
   cmbSucursales.DataSource = dt
   cmbSucursales.DisplayMember = "localidad"
   cmbSucursales.ValueMember = "IDsuc"
   cmbSucursales.SelectedIndex = - 1
End If
Pero me da el siguiente error: "No se controlé ArgumentException - No se puede enlazar con el nuevo miembro de presentación. Nombre del parámetro: newDisplayMember".
Yo supongo que puede ser por el hecho de que hago una consulta a 2 tablas, pero no estoy seguro.

Si alguno sabe donde está el error y me puede dar una mano se lo voy a agradecer.

Saludos,
Dilor.
  #2 (permalink)  
Antiguo 14/10/2010, 19:46
 
Fecha de Ingreso: octubre-2010
Mensajes: 2
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: Llenar combobox con 2 tablas

Hola Dilor, mira, no se que motor de base de datos usas despues, pero ese tipo de relaciones entre dos tablas suelo hacerlas con JOINS, por ej. de la forma

Código:
"SELECT s.IDsuc, l.localidad FROM Sucursal AS s LEFT JOIN Localidad as l ON s.codigo_postal=l.codigo_postal"
creo que esa sería la forma correcta de tomar todas las sucursales y las localidades existentes o no en la tabla de localidades (si hay un codigo postal en sucursales que no figura en la tabla localidad el campo "localidad" seria nulo) para que muestre los registros coincidentes en ambas tablas reemplazas LEFT JOIN con INNER JOIN.

Código:
"SELECT s.IDsuc, l.localidad FROM Sucursal AS s INNER JOIN Localidad as l ON s.codigo_postal=l.codigo_postal"
Creo que el uso del WHERE no es valido para lograr esta union, si te serviría si quisieras filtrar la lista resultante con algun campo.

Espero te sirva de ayuda.

Sebastian.

Etiquetas: combobox, llenar, tablas
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 22:41.