Dela via


Anvisningar: Binda Windows Forms DataGrid-kontrollen till en datakälla

Anmärkning

Den DataGridView kontrollen ersätter och lägger till funktioner i DataGrid-kontrollen. Den DataGrid kontrollen behålls dock för både bakåtkompatibilitet och framtida användning, om du väljer det. För mer information, se Skillnader mellan Windows Forms DataGridView- och DataGrid-kontrollerna.

Kontrollen Windows Forms DataGrid är särskilt utformad för att visa information från en datakälla. Du binder kontrollen vid körning genom att anropa metoden SetDataBinding. Även om du kan visa data från en mängd olika datakällor är de vanligaste källorna datauppsättningar och datavyer.

För att databinda DataGrid-kontrollen programmatiskt

  1. Skriv kod för att fylla datauppsättningen.

    Om datakällan är en datauppsättning eller en datavy baserat på en datamängdstabell lägger du till kod i formuläret för att fylla i datamängden.

    Exakt vilken kod du använder beror på var datauppsättningen hämtar data. Om datamängden fylls i direkt från en databas anropar du vanligtvis Fill-metoden för en dataadapter, som i följande exempel fyller en datamängd med namnet DsCategories1:

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

    Om datamängden fylls i från en XML-webbtjänst skapar du vanligtvis en instans av tjänsten i koden och anropar sedan en av dess metoder för att returnera en datauppsättning. Sedan sammanfogar du datamängden från XML-webbtjänsten till din lokala datauppsättning. I följande exempel visas hur du kan skapa en instans av en XML-webbtjänst med namnet CategoriesService, anropa dess GetCategories-metod och sammanfoga den resulterande datamängden till en lokal datauppsättning med namnet 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. Anropa DataGrid-kontrollens SetDataBinding-metod och skicka den till datakällan och en datamedlem. Om du inte behöver ange en medlemsvariabel uttryckligen, skicka en tom sträng.

    Anmärkning

    Om du binder rutnätet för första gången kan du ange kontrollens DataSource och DataMember egenskaper. Du kan dock inte återställa dessa egenskaper när de har angetts. Därför rekommenderar vi att du alltid använder metoden SetDataBinding.

    I följande exempel visas hur du programmatiskt kan binda till tabellen Kunder i en datauppsättning med namnet DsCustomers1:

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

    Om tabellen Kunder är den enda tabellen i datauppsättningen kan du också binda rutnätet på det här sättet:

    DataGrid1.SetDataBinding(DsCustomers1, "")
    
    DataGrid1.SetDataBinding(DsCustomers1, "");
    
    dataGrid1->SetDataBinding(dsCustomers1, "");
    
  3. (Valfritt) Lägg till lämpliga tabellformat och kolumnformat i rutnätet. Om det inte finns några tabellformat visas tabellen, men med minimal formatering och med alla kolumner synliga.

Se även