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

Preguntas similare

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
Respuesta Responder a este mensaje
#2 Miko_tnt
15/11/2005 - 12:53 | Informe spam
gracias pedro por la respueta .. pero si mas especificamente quisiaera
guardar el estado en una variable local y no en un textBox ??

... veras esto lo hago porke en un determinado momento me toka ver en que
estado me encuentro y deacuerdo kon el estado obtener el pais(otra relacion)
... y ya kon el pais poder realizar un filtrado sobre mi grilla

espero hayas entedido mi duda y nuevamente mil gracias



"Pedro Luna Montalvo, [MVP VB.NET]" wrote:

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



Respuesta Responder a este mensaje
#3 Pedro Luna Montalvo, [MVP VB.NET]
15/11/2005 - 14:53 | Informe spam
Ok, si solo necesitas guardar este estado en una variable, podemos intentar
algo asi:


Luego de obtener el DataSet (yo sigo con el ejemplo que antes puse),
agregamos una relación entre ambas tablas:

' Agregamos la relación
ds.Relations.Add("EstadoCiudad", _
ds.Tables("Estados").Columns("CodEstado"), _
ds.Tables("Ciudades").Columns("CodEstado"))

Luego de esto, vinculamos las ciudades al combo, similar a lo que hicimos
antes, pero no creamos ningun DataView, ya que no lo necesitamos.

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

If Me.ComboBox1.SelectedIndex >= 0 Then
Dim oFilaEstado As DataRow = _
ds.Tables("Ciudades").Rows(Me.ComboBox1.SelectedIndex).GetParentRow("EstadoCiudad")

MessageBox.Show(oFilaEstado("NombreEstado").ToString())
End If


Aqui yo muestro el nombre en una caja de mensajes, tu deberias guardar el
codigo del mismo o el campo que necesites en una variable.


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

"Miko_tnt" escribió en el mensaje
news:
gracias pedro por la respueta .. pero si mas especificamente quisiaera
guardar el estado en una variable local y no en un textBox ??

... veras esto lo hago porke en un determinado momento me toka ver en que
estado me encuentro y deacuerdo kon el estado obtener el pais(otra
relacion)
... y ya kon el pais poder realizar un filtrado sobre mi grilla

espero hayas entedido mi duda y nuevamente mil gracias



"Pedro Luna Montalvo, [MVP VB.NET]" wrote:

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



Respuesta Responder a este mensaje
#4 Miko_tnt
15/11/2005 - 16:45 | Informe spam
Pedro gracias nuevamente... pero se me presenta un problema ...antes ke nada
te expliko un poko mejor mi problema para ke veas porke falla tengo las
siguientes tablas:
Paises(p1,p2,p3) es decir 3 paises
Estados y cada estado se relaciona con un pais(e1-p1,e2-p2) tengo 2 estados
el primero esta en el pais p1 y el segundo en el pais p2
Ciudades y cada ciudad esta en un estado(c1-e1,c2-e2,c3-e1,c4-e1)
la ciudad1,3 y 4 estan en el estado1 mientras que la ciudad 2 esta en el
estado2

el Combo que tengo me muestra las ciudades y si pongo el kodigo ke me diste
me va a mostrar el estado correcto, pero al intentar sacar el pais, no tengo
manera ya que el numero de la fila no lo puedo sacar

Muchas gracias nuevamente y pedon la molestia ahi creo ke entenderas el
fondo de mi problema y para ke es ke lo necesito...

"Pedro Luna Montalvo, [MVP VB.NET]" wrote:

Ok, si solo necesitas guardar este estado en una variable, podemos intentar
algo asi:


Luego de obtener el DataSet (yo sigo con el ejemplo que antes puse),
agregamos una relación entre ambas tablas:

' Agregamos la relación
ds.Relations.Add("EstadoCiudad", _
ds.Tables("Estados").Columns("CodEstado"), _
ds.Tables("Ciudades").Columns("CodEstado"))

Luego de esto, vinculamos las ciudades al combo, similar a lo que hicimos
antes, pero no creamos ningun DataView, ya que no lo necesitamos.

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

If Me.ComboBox1.SelectedIndex >= 0 Then
Dim oFilaEstado As DataRow = _
ds.Tables("Ciudades").Rows(Me.ComboBox1.SelectedIndex).GetParentRow("EstadoCiudad")

MessageBox.Show(oFilaEstado("NombreEstado").ToString())
End If


Aqui yo muestro el nombre en una caja de mensajes, tu deberias guardar el
codigo del mismo o el campo que necesites en una variable.


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

"Miko_tnt" escribió en el mensaje
news:
> gracias pedro por la respueta .. pero si mas especificamente quisiaera
> guardar el estado en una variable local y no en un textBox ??
>
> ... veras esto lo hago porke en un determinado momento me toka ver en que
> estado me encuentro y deacuerdo kon el estado obtener el pais(otra
> relacion)
> ... y ya kon el pais poder realizar un filtrado sobre mi grilla
>
> espero hayas entedido mi duda y nuevamente mil gracias
>
>
>
> "Pedro Luna Montalvo, [MVP VB.NET]" wrote:
>
>> 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
>>
>>
>>



Respuesta Responder a este mensaje
#5 Pedro Luna Montalvo, [MVP VB.NET]
15/11/2005 - 16:53 | Informe spam
Saludos,

Procede igual que como lo que se mostro, agrega otra relacion entre las
tablas de Paises y Estados, digamos algo asi como:

' Agregamos la relación
ds.Relations.Add("PaisEstado", _
ds.Tables("Paises").Columns("CodPais"), _
ds.Tables("Estados").Columns("CodPais"))

Y para obtener los paises, en en evento SelectecIndexChanged, utiliza:

Dim oFilaEstado As DataRow = _
ds.Tables("Ciudades").Rows(Me.ComboBox1.SelectedIndex).GetParentRow("EstadoCiudad")

Dim oFilaPais As Datarow = oFilaEstado.GetParentRow("PaisEstado")


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


"Miko_tnt" escribió en el mensaje
news:

Pedro gracias nuevamente... pero se me presenta un problema ...antes ke
nada
te expliko un poko mejor mi problema para ke veas porke falla tengo
las
siguientes tablas:
Paises(p1,p2,p3) es decir 3 paises
Estados y cada estado se relaciona con un pais(e1-p1,e2-p2) tengo 2
estados
el primero esta en el pais p1 y el segundo en el pais p2
Ciudades y cada ciudad esta en un estado(c1-e1,c2-e2,c3-e1,c4-e1)
la ciudad1,3 y 4 estan en el estado1 mientras que la ciudad 2 esta en el
estado2

el Combo que tengo me muestra las ciudades y si pongo el kodigo ke me
diste
me va a mostrar el estado correcto, pero al intentar sacar el pais, no
tengo
manera ya que el numero de la fila no lo puedo sacar

Muchas gracias nuevamente y pedon la molestia ahi creo ke entenderas el
fondo de mi problema y para ke es ke lo necesito...

"Pedro Luna Montalvo, [MVP VB.NET]" wrote:

Ok, si solo necesitas guardar este estado en una variable, podemos
intentar
algo asi:


Luego de obtener el DataSet (yo sigo con el ejemplo que antes puse),
agregamos una relación entre ambas tablas:

' Agregamos la relación
ds.Relations.Add("EstadoCiudad", _
ds.Tables("Estados").Columns("CodEstado"), _
ds.Tables("Ciudades").Columns("CodEstado"))

Luego de esto, vinculamos las ciudades al combo, similar a lo que hicimos
antes, pero no creamos ningun DataView, ya que no lo necesitamos.

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

If Me.ComboBox1.SelectedIndex >= 0 Then
Dim oFilaEstado As DataRow = _

ds.Tables("Ciudades").Rows(Me.ComboBox1.SelectedIndex).GetParentRow("EstadoCiudad")

MessageBox.Show(oFilaEstado("NombreEstado").ToString())
End If


Aqui yo muestro el nombre en una caja de mensajes, tu deberias guardar el
codigo del mismo o el campo que necesites en una variable.


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

"Miko_tnt" escribió en el mensaje
news:
> gracias pedro por la respueta .. pero si mas especificamente quisiaera
> guardar el estado en una variable local y no en un textBox ??
>
> ... veras esto lo hago porke en un determinado momento me toka ver en
> que
> estado me encuentro y deacuerdo kon el estado obtener el pais(otra
> relacion)
> ... y ya kon el pais poder realizar un filtrado sobre mi grilla
>
> espero hayas entedido mi duda y nuevamente mil gracias
>
>
>
> "Pedro Luna Montalvo, [MVP VB.NET]" wrote:
>
>> 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
>>
>>
>>



Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida