Partager via


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

Modification des données dans votre application

Validation des données

Enregistrement des données