Aggiunta di oggetti DataRelation

In un DataSet contenente più oggetti DataTable è possibile usare gli oggetti DataRelation per creare relazioni tra le tabelle, navigare tra di esse e restituire le righe padre o figlio da una tabella correlata.

Gli argomenti necessari per la creazione di un oggetto DataRelation sono un nome per l'oggetto DataRelation creato e una matrice di uno o più riferimenti DataColumn alle colonne che fungono da colonne padre e figlio nella relazione. Una volta creato un oggetto DataRelation, è possibile usare tale oggetto per navigare tra le tabelle e recuperare i valori.

Se si aggiunge un oggetto DataRelation a un DataSet, per impostazione predefinita viene aggiunto un vincolo UniqueConstraint alla tabella padre e un vincolo ForeignKeyConstraint alla tabella figlio. Per altre informazioni su questi vincoli predefiniti, vedere Vincoli DataTable.

Nell'esempio di codice seguente viene creato un oggetto DataRelation usando due oggetti DataTable in un DataSet. In ogni DataTable è contenuta una colonna denominata CustID, che funge da collegamento tra i due oggetti DataTable. Nell'esempio viene aggiunto un singolo oggetto DataRelation alla raccolta Relations del DataSet. Il nome dell'oggetto DataRelation creato viene specificato dal primo argomento dell'esempio. Il secondo argomento consente di impostare l'oggetto DataColumn padre e il terzo argomento consente di impostare l'oggetto DataColumn figlio.

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"]);  

Un oggetto DataRelation dispone anche di una proprietà Nested che, se impostata su true, provoca l'annidamento delle righe della tabella figlio all'interno della riga associata della tabella padre, nel caso in cui tali righe siano scritte come elementi XML tramite il metodo WriteXml. Per altre informazioni, vedere Uso di XML in un set di dati.

Vedi anche