La Web del Programador: Comunidad de Programadores
 
    Pregunta:  44320 - RELACIONES DOBLES EN DATASETS
Autor:  ibai imaz
Tengo una duda, se como se hacen las relaciones con el data relation, pero tengo dos tablas que tienen claves compuestas y quiero relacionar los dos campos, no solo uno de ellos, como puedo hacer una relacion con los dos campos???? Gracias

  Respuesta:  Hugo Aristizábal
Existe una sobrecarga del constructor DataRelation que admite, primero un string con el nombre de la relaciín, y luego dos arreglos de columnas, padre e hijo, para la relación, así que lo que tenés que hacer es lo siguiente:

Private Sub CrearRelacion()

' Arreglos de columnas para los campos que se van a relacionar
Dim ColumnasPadre() As DataColumn
Dim ColumnasHijo() As DataColumn

' Traemos del DataSet las columnas a relacionar, y las almacenamos
' en cada una de las posiciones del vector que acabamos de crear
ColumnasPadre(0) = DataSet1.Tables(0).Columns(0)
ColumnasPadre(1) = DataSet1.Tables(0).Columns(1)

ColumnasHijo(0) = DataSet1.Tables(1).Columns(0)
ColumnasHijo(1) = DataSet1.Tables(1).Columns(1)

' Creamos la relación
Dim Relacion As DataRelation
Relacion = New DataRelation("Nombre", ColumnasPadre, ColumnasHijo)

' Agregamos la relación al Dataset
DataSet1.Relations.Add(Relacion)

End Sub

Obviamente, debés poner los nombres de las tablas y de las columnas de acuerdo con tu relación.

Si cualquier cosa me escribís.

[email protected]