Практическое руководство. Привязка элемента управления DataGrid в Windows Forms к источнику данных

Примечание.

Элемент управления DataGridView заменяет элемент управления DataGrid и расширяет его функциональные возможности; однако при необходимости элемент управления DataGrid можно сохранить для обратной совместимости и использования в будущем. Дополнительные сведения см. в разделе Различия элементов управления DataGridView и DataGrid в Windows Forms.

Элемент управления Windows Forms DataGrid специально предназначен для отображения сведений из источника данных. Элемент управления привязывается во время выполнения путем вызова метода SetDataBinding. Хотя можно отображать данные из различных источников данных, наиболее типичными являются наборы данных и представления данных.

Программная привязка данных к элементу управления DataGrid

  1. Напишите код для заполнения набора данных.

    Если источником данных является набор данных или представление данных на основе таблицы набора данных, добавьте код в форму для заполнения набора данных.

    Точный код, который вы используете, зависит от того, откуда набор данных получает данные. Если набор данных заполняется непосредственно из базы данных, обычно вызывается метод Fill адаптера данных, как показано в следующем примере, который заполняет набор данных с именем DsCategories1.

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

    Если набор данных заполняется из XML-веб-службы, обычно создается экземпляр службы в коде, а затем вызывается один из его методов для возврата набора данных. Затем набор данных из XML-веб-службы объединяется в локальный набор данных. В следующем примере показано, как создать экземпляр XML-веб-службы с именем CategoriesService, вызвать ее метод GetCategories и объединить полученный набор данных в локальный набор данных 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. Вызовите метод SetDataBinding элемента управления DataGrid, передав ему источник данных и элемент данных. Если вам не нужно явно передавать элемент данных, передайте пустую строку.

    Примечание.

    При первой привязке сетки можно задать свойства DataSource и DataMember элемента управления. Однако эти свойства нельзя сбросить после их установки. Поэтому рекомендуется всегда использовать метод SetDataBinding.

    В следующем примере показано, как программно выполнить привязку к таблице Customers в наборе данных с именем DsCustomers1.

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

    Если таблица Customers является единственной таблицей в наборе данных, можно также привязать сетку следующим образом.

    DataGrid1.SetDataBinding(DsCustomers1, "")  
    
    DataGrid1.SetDataBinding(DsCustomers1, "");  
    
    dataGrid1->SetDataBinding(dsCustomers1, "");  
    
  3. (Необязательно) Добавьте соответствующие стили таблиц и стили столбцов в сетку. Если стилей таблиц нет, то таблица отобразится, но с минимальным форматированием и всеми столбцами.

См. также