Aggiunta di una relazione tra tabelle

In un DataSet contenente più oggetti DataTable è possibile utilizzare gli oggetti DataRelation per creare relazioni tra le tabelle, esplorarle 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 figlie nella relazione. Una volta creato un oggetto DataRelation, è possibile utilizzare tale oggetto per esplorare le tabelle e recuperare i valori.

Se si aggiunge un oggetto DataRelation a un DataSet, in base all'impostazione predefinita viene aggiunto un vincolo UniqueConstraint alla tabella padre e un vincolo ForeignKeyConstraint alla tabella figlia. Per ulteriori informazioni sui vincoli predefiniti, vedere Aggiunta di vincoli alla tabella.

L'esempio di codice seguente consente di creare un oggetto DataRelation utilizzando due oggetti DataTable in un DataSet. In ogni DataTable è contenuta una colonna denominata CustID, che funge da collegamento tra i due oggetti DataTable. L'esempio consente di aggiungere un singolo oggetto DataRelation all'insieme 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.

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

Un oggetto DataRelation dispone anche di una proprietà Nested che, se impostata su true, provoca la nidificazione delle righe della tabella figlia entro la riga associata della tabella padre, nel caso in cui tali righe siano scritte come elementi XML tramite WriteXml. Per ulteriori informazioni, vedere XML e il DataSet.

Vedere anche

Creazione e utilizzo di DataSet | Classe DataColumn | Classe DataRelation | Classe DataRelationCollection | Classe DataSet | Classe DataTable