Comment : accéder aux enregistrements dans les DataTables connexes
Lorsque les tables contenues dans un groupe de données sont liées, un objet DataRelation peut rendre les enregistrements connexes disponibles dans une autre table. Par exemple, un groupe de données contenant des tables Customers et Orders peut être rendu disponible.
Vous pouvez utiliser un objet DataRelation pour rechercher des enregistrements connexes en appelant la méthode GetChildRows d'un DataRow dans la table parente ; cette méthode retourne un tableau d'enregistrements enfants connexes. Vous pouvez également appeler la méthode GetParentRow d'un DataRow dans la table enfant ; cette méthode retourne un DataRow unique à partir de la table parente.
Cette page d'aide fournit des exemples d'utilisation de groupes de données typés. Pour plus d'informations sur la façon de parcourir les relations dans les groupes de données non typés, consultez Exploration des DataRelations (ADO.NET).
Notes
Si vous travaillez dans une application Windows Forms et affichez des données à l'aide des fonctionnalités de liaison de données, le formulaire généré par le concepteur peut fournir suffisamment de fonctions pour votre application. Pour plus d'informations, consultez les pages de la rubrique Liaison de contrôles à des données dans Visual Studio, en particulier Comment : afficher des données connexes dans une application Windows Forms et Procédure pas à pas : affichage de données liées sur un Windows Form.
Les exemples de code suivants montent comment parcourir les relations en se déplaçant vers le haut ou vers le bas dans les groupes de données typés Ils utilisent les méthodes typées DataRows (NorthwindDataSet.OrdersRow) et FindByPrimaryKey (FindByCustomerID) pour rechercher une ligne souhaitée et retourner les enregistrements connexes. Ces exemples ne se compilent et s'exécutent correctement que si vous possédez :
une instance d'un groupe de données nommée NorthwindDataSet avec une table Customers ;
une table Orders ;
une relation nommée FK_Orders_Customers relative aux deux tables disponibles dans la portée de votre code.
En outre, les deux tables doivent être remplies avec les données de tout enregistrement à retourner.
Accès aux enregistrements connexes
Pour retourner les enregistrements enfants d'un enregistrement parent sélectionné
Appelez la méthode GetChildRows d'une ligne de données Customers spécifique et retournez un tableau de lignes à partir de la table Orders :
Dim customerID As String = "ALFKI" Dim orders() As NorthwindDataSet.OrdersRow orders = CType(NorthwindDataSet.Customers.FindByCustomerID(customerID). GetChildRows("FK_Orders_Customers"), NorthwindDataSet.OrdersRow()) MessageBox.Show(orders.Length.ToString())
string custID = "ALFKI"; NorthwindDataSet.OrdersRow[] orders; orders = (NorthwindDataSet.OrdersRow[])northwindDataSet.Customers. FindByCustomerID(custID).GetChildRows("FK_Orders_Customers"); MessageBox.Show(orders.Length.ToString());
Pour retourner l'enregistrement parent d'un enregistrement enfant sélectionné
Appelez la méthode GetParentRow d'une ligne de données Orders spécifique et retournez une ligne unique à partir de la table Customers :
Dim orderID As Integer = 10707 Dim customer As NorthwindDataSet.CustomersRow customer = CType(NorthwindDataSet.Orders.FindByOrderID(orderID). GetParentRow("FK_Orders_Customers"), NorthwindDataSet.CustomersRow) MessageBox.Show(customer.CompanyName)
int orderID = 10707; NorthwindDataSet.CustomersRow customer; customer = (NorthwindDataSet.CustomersRow)northwindDataSet.Orders. FindByOrderID(orderID).GetParentRow("FK_Orders_Customers"); MessageBox.Show(customer.CompanyName);
Voir aussi
Concepts
Liaison de contrôles à des données dans Visual Studio
Autres ressources
Relations dans les groupes de données
Vue d'ensemble d'applications de données dans Visual Studio
Connexion aux données dans Visual Studio
Préparation de votre application pour recevoir des données
Extraction de données dans votre application