Adicionando DataRelations

Em um DataSet com vários objetos DataTable, você pode usar objetos DataRelation para relacionar uma tabela a outra, para navegar pelas tabelas e para retornar as linhas filho ou pai de uma tabela relacionada.

Os argumentos necessários para criar um DataRelation são um nome para o DataRelation, que está sendo criado, e uma matriz de uma ou mais referências de DataColumn para as colunas que funcionam como colunas pai e filho na relação. Depois de criar um DataRelation, você pode usá-lo para navegar entre tabelas e para recuperar valores.

Por padrão, a adição de um DataRelation a um DataSet adiciona um UniqueConstraint à tabela pai e um ForeignKeyConstraint à tabela filho. Para obter mais informações sobre essas restrições padrão, consulte Restrições de DataTable.

O exemplo de código a seguir cria um DataRelation usando dois objetos DataTable em um DataSet. Cada DataTable contém uma coluna denominada CustID, que funciona como um link entre os dois objetos DataTable. O exemplo adiciona um único DataRelation à coleção Relations do DataSet. O primeiro argumento do exemplo especifica o nome do DataRelation que está sendo criado. O segundo argumento define o DataColumn pai e o terceiro argumento define o DataColumn filho.

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

Um DataRelation também tem uma propriedade Nested que, quando definida como true, faz com que as linhas da tabela filho sejam aninhadas na linha associada da tabela pai quando gravadas como elementos XML usando WriteXml. Para obter mais informações, consulte Using XML in a DataSet (Usando XML em um DataSet).

Confira também