Comment : lier le contrôle DataGrid Windows Forms à une source de données

Remarque

Le contrôle DataGridView remplace le contrôle DataGrid et lui ajoute des fonctionnalités ; toutefois, le contrôle DataGrid est conservé pour la compatibilité descendante et l'utilisation future si tel est votre choix. Pour plus d’informations, consultez Différences entre les contrôles DataGridView et DataGrid Windows Forms.

Le contrôle Windows Forms DataGrid est spécifiquement conçu pour afficher des informations à partir d’une source de données. Vous liez le contrôle au moment de l’exécution en appelant la SetDataBinding méthode. Bien que vous puissiez afficher des données provenant de diverses sources de données, les sources les plus courantes sont des jeux de données et des vues de données.

Pour lier le contrôle DataGrid par programmation

  1. Écrivez du code pour remplir le jeu de données.

    Si la source de données est un jeu de données ou une vue de données basée sur une table de jeux de données, ajoutez du code au formulaire pour remplir le jeu de données.

    Le code exact que vous utilisez dépend de l’emplacement où le jeu de données obtient des données. Si le jeu de données est rempli directement à partir d’une base de données, vous appelez généralement la Fill méthode d’un adaptateur de données, comme dans l’exemple suivant, qui remplit un jeu de données appelé DsCategories1:

    sqlDataAdapter1.Fill(DsCategories1)  
    
    sqlDataAdapter1.Fill(DsCategories1);  
    
    sqlDataAdapter1->Fill(dsCategories1);  
    

    Si le jeu de données est rempli à partir d’un service Web XML, vous créez généralement une instance du service dans votre code, puis appelez l’une de ses méthodes pour retourner un jeu de données. Vous fusionnez ensuite le jeu de données à partir du service Web XML dans votre jeu de données local. L’exemple suivant montre comment créer une instance d’un service Web XML appelé CategoriesService, appeler sa GetCategories méthode et fusionner le jeu de données résultant dans un jeu de données local appelé DsCategories1:

    Dim ws As New MyProject.localhost.CategoriesService()  
    ws.Credentials = System.Net.CredentialCache.DefaultCredentials  
    DsCategories1.Merge(ws.GetCategories())  
    
    MyProject.localhost.CategoriesService ws = new MyProject.localhost.CategoriesService();  
    ws.Credentials = System.Net.CredentialCache.DefaultCredentials;  
    DsCategories1.Merge(ws.GetCategories());  
    
    MyProject::localhost::CategoriesService^ ws =
       new MyProject::localhost::CategoriesService();  
    ws->Credentials = System::Net::CredentialCache::DefaultCredentials;  
    dsCategories1->Merge(ws->GetCategories());  
    
  2. Appelez la DataGrid méthode du SetDataBinding contrôle, en lui transmettant la source de données et un membre de données. Si vous n’avez pas besoin de transmettre explicitement un membre de données, transmettez une chaîne vide.

    Remarque

    Si vous liez la grille pour la première fois, vous pouvez définir les propriétés et DataMember les propriétés du DataSource contrôle. Toutefois, vous ne pouvez pas réinitialiser ces propriétés une fois qu’elles ont été définies. Par conséquent, il est recommandé d’utiliser toujours la SetDataBinding méthode.

    L’exemple suivant montre comment vous pouvez lier par programmation à la table Customers dans un jeu de données appelé DsCustomers1:

    DataGrid1.SetDataBinding(DsCustomers1, "Customers")  
    
    DataGrid1.SetDataBinding(DsCustomers1, "Customers");  
    
    dataGrid1->SetDataBinding(dsCustomers1, "Customers");  
    

    Si la table Customers est la seule table du jeu de données, vous pouvez également lier la grille de cette façon :

    DataGrid1.SetDataBinding(DsCustomers1, "")  
    
    DataGrid1.SetDataBinding(DsCustomers1, "");  
    
    dataGrid1->SetDataBinding(dsCustomers1, "");  
    
  3. (Facultatif) Ajoutez les styles de tableau et les styles de colonne appropriés à la grille. S’il n’existe aucun style de tableau, vous verrez le tableau, mais avec une mise en forme minimale et toutes les colonnes visibles.

Voir aussi