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

#6 Miko_tnt
15/11/2005 - 17:51 | Informe spam
Ya kedo (y) .. gracias


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

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
>> >>
>> >>
>> >>
>>
>>
>>



email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida