dataRelation

14/11/2005 - 19:18 por Miko_tnt | Informe spam
buenas .. tengo la siguiente duda y agradeceria si alguien sabe la
respuesta...
Creo una relacion entre dos tablas y esta la agrego a un dataset

Dim relacion1 As New DataRelation("nom_relacion1",Columna1, Columna2
ds.Relations.Add(relacion1)

el caso es que en una forma determinada tengo un combo y quiero que al
seleccionar un dato del combo me escriba en un textBox la relacion... mas
especificamente es con ciudades y estados

entre estos dos cree la relacion y el combo me muestra todas las ciudades y
quiero que al selecionar una de estas en un textbox me mestre el estado al ke
corresponde

Oajala me hayan entendido y muchas gracias
 

Leer las respuestas

#1 Pedro Luna Montalvo, [MVP VB.NET]
15/11/2005 - 04:19 | Informe spam
Saludos,

Un tanto la complicacion acá es que los manjadores de vinculos de datos
facilitan la navegacion de cabecera a detalle en una relacion de datos, pero
tu tienes la necesidad de navegar en sentido inverso..no soy muy exporto
en DataBindings, pero lo siguiente funciona...

Primero, para las pruebas, yo estoy creando manualmente este DataSet. Seguro
que tu lo obtienes de una base de datos. Perdon por el ejemplo
"ecuatorianizado".

Dim ds As New DataSet

' Agregamos y creamos la tabla de estados
ds.Tables.Add("Estados")
ds.Tables("Estados").Columns.Add("CodEstado", GetType(Integer))
ds.Tables("Estados").Columns.Add("NombreEstado", GetType(String))

ds.Tables("Estados").Rows.Add(New Object() {1, "GUAYAS"})
ds.Tables("Estados").Rows.Add(New Object() {2, "PICHINCHA"})
ds.Tables("Estados").Rows.Add(New Object() {3, "AZUAY"})

' Agregamos y creamos la tabla de ciudades
ds.Tables.Add("Ciudades")
ds.Tables("Ciudades").Columns.Add("CodCiudad", GetType(Integer))
ds.Tables("Ciudades").Columns.Add("NombreCiudad", GetType(String))
ds.Tables("Ciudades").Columns.Add("CodEstado", GetType(Integer))

ds.Tables("Ciudades").Rows.Add(New Object() {1, "Guayaquil", 1})
ds.Tables("Ciudades").Rows.Add(New Object() {2, "Durán", 1})
ds.Tables("Ciudades").Rows.Add(New Object() {3, "Quito", 2})
ds.Tables("Ciudades").Rows.Add(New Object() {4, "Sto. Domingo", 2})
ds.Tables("Ciudades").Rows.Add(New Object() {5, "Cuenca", 3})


Ahora, con estos supuestos datos, vamos a vincular un ComboBox con las
ciudades, y haremos que se actualice automaticamente un Textbox con el
estado al que pertenece asi:

' Vinculamos las ciudades al ComboBox
Me.ComboBox1.DataSource = ds.Tables("Ciudades")
Me.ComboBox1.DisplayMember = "NombreCiudad"
Me.ComboBox1.ValueMember = "CodEstado"

' Creamos un DataView y lo vinculamos a la caja de texto
Dim dv As New DataView(ds.Tables("Estados"))
Me.TextBox1.DataBindings.Add("Text", dv, "NombreEstado")


Finalmente, en el manejador del evento SelectedIndexChanged del ComboBox de
ciudades, agregamos lo siguiente:

If Me.ComboBox1.SelectedValue Is Nothing Then
dv.RowFilter = Nothing
Else
dv.RowFilter = "CodEstado = " &
Me.ComboBox1.SelectedValue.ToString()
End If


Saludos,
Pedro Luna Montalvo, [MVP VB.NET]
Gye, Ecu




"Miko_tnt" escribió en el mensaje
news:

buenas .. tengo la siguiente duda y agradeceria si alguien sabe la
respuesta...
Creo una relacion entre dos tablas y esta la agrego a un dataset

Dim relacion1 As New DataRelation("nom_relacion1",Columna1, Columna2
ds.Relations.Add(relacion1)

el caso es que en una forma determinada tengo un combo y quiero que al
seleccionar un dato del combo me escriba en un textBox la relacion... mas
especificamente es con ciudades y estados

entre estos dos cree la relacion y el combo me muestra todas las ciudades
y
quiero que al selecionar una de estas en un textbox me mestre el estado al
ke
corresponde

Oajala me hayan entendido y muchas gracias

Preguntas similares