Share via


Ajout d'une relation entre différentes tables

Dans un DataSet qui contient plusieurs objets DataTable, vous pouvez utiliser des objets DataRelation pour associer une table à une autre, pour vous déplacer dans les tables et pour retourner les lignes enfants ou parentes d'une table associée.

Les arguments requis pour créer un objet DataRelation sont un nom pour cet objet et un tableau d'une ou de plusieurs références DataColumn aux colonnes qui serviront de colonnes parentes et enfants dans la relation. Une fois que vous avez créé un DataRelation, vous pouvez l'utiliser pour vous déplacer entre les tables et extraire des valeurs.

Le fait d'ajouter un DataRelation à un DataSet ajoute, par défaut, un UniqueConstraint à la table parente et un ForeignKeyConstraint à la table enfant. Pour plus d'informations sur ces contraintes par défaut, consultez Ajout de contraintes à une table.

L'exemple de code suivant crée un DataRelation entre deux objets DataTable d'un DataSet. Chaque DataTable contient une colonne nommée CustID qui sert de lien entre les deux objets DataTable. L'exemple ajoute un seul DataRelation à la collection Relations du DataSet. Le premier argument de l'exemple spécifie le nom du DataRelation créé. Le deuxième définit le DataColumn parent et le troisième le DataColumn enfant.

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 DataRelation est également assorti d'une propriété Nested qui, lorsqu'elle a la valeur true, imbrique les lignes de la table enfant dans la ligne associée de la table parente lorsque ce contenu est écrit sous forme d'éléments XML à l'aide de WriteXml. Pour plus d'informations, consultez XML et le DataSet.

Voir aussi

Création et utilisation de DataSets | DataColumn, classe | DataRelation, classe | DataRelationCollection, classe | DataSet, classe | DataTable, classe