Agregar una relación entre tablas

En un DataSet que contiene varios objetos DataTable, es posible utilizar objetos DataRelation para relacionar una tabla con otra, desplazarse por las tablas y devolver filas secundarias o primarias de una tabla relacionada.

Los argumentos necesarios para crear una DataRelation son un nombre para la DataRelation que se va a crear y una matriz de una o más referencias DataColumn a las columnas que actúan como columnas primaria y secundaria en la relación. Una vez creado un objeto DataRelation, es posible utilizarlo para desplazarse por las tablas y recuperar valores.

Al agregar una DataRelation a un DataSet se agrega de forma predeterminada una UniqueConstraint a la tabla primaria y una ForeignKeyConstraint a la tabla secundaria. Para obtener más información acerca de estas restricciones predeterminadas, vea Agregar restricciones a una tabla.

En el siguiente ejemplo de código se crea una DataRelation utilizando dos objetos DataTable de un DataSet. Cada DataTable contiene una columna denominada CustID, que actúa de vínculo entre los dos objetos DataTable. El ejemplo agrega una única DataRelation a la colección Relations del DataSet. El primer argumento del ejemplo especifica el nombre de la DataRelation que se va a crear. El segundo argumento establece la DataColumn primaria y el tercer argumento establece la DataColumn secundaria.

custDS.Relations.Add("CustOrders", _
                     custDS.Tables("Customers").Columns("CustID"), _
                     custDS.Tables("Orders").Columns("CustID"))
[C#]
custDS.Relations.Add("CustOrders",
                     custDS.Tables["Customers"].Columns["CustID"],
                     custDS.Tables["Orders"].Columns["CustID"]);

Una DataRelation tiene también una propiedad Nested que, cuando tiene el valor true, hace que las filas de la tabla secundaria se aniden dentro de la fila asociada de la tabla primaria cuando se escriben como elementos XML mediante WriteXml. Para obtener más información, vea XML y DataSet.

Vea también

Crear y utilizar DataSets | DataColumn (Clase) | DataRelation (Clase) | DataRelationCollection (Clase) | DataSet (Clase) | DataTable (Clase)