方法: データ ソースに Windows フォーム DataGrid コントロールをバインドする

注意

DataGridView コントロールは、DataGrid コントロールに代わると共に追加の機能を提供します。ただし、DataGrid コントロールは、下位互換性を保つ目的および将来使用する目的で保持されます。 詳細については、「Windows フォームの DataGridView コントロールと DataGrid コントロールの違いについて」を参照してください。

Windows フォームの DataGrid コントロールは、データ ソースからの情報を表示するために設計されています。 実行時にコントロールをバインドするには、SetDataBinding メソッドを呼び出します。 さまざまなデータ ソースのデータを表示できますが、最も一般的なソースはデータ セットとデータ ビューです。

DataGrid コントロールをプログラムによってデータ バインドするには

  1. データ セットにデータを設定するためのコードを記述します。

    データ ソースがデータ セットであるか、またはデータ セット テーブルに基づくデータ ビューである場合は、データ セットにデータを設定するためのコードをフォームに追加します。

    実際に使用するコードは、データ セットがどこからデータを取得するかによって異なります。 データ セットがデータベースから直接作成される場合は、通常、次の例のように、データ アダプターの Fill メソッドを呼び出します。この例では、DsCategories1 というデータ セットを設定しています。

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

    データ セットが XML Web サービスから読み込まれる場合は、通常、コード内にサービスのインスタンスを作成し、そのメソッドの 1 つを呼び出してデータ セットを返します。 その後、XML Web サービスからのデータ セットをローカル データ セットにマージします。 次の例では、XML Web サービスのインスタンス (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. DataGrid コントロールの SetDataBinding メソッドを呼び出して、データ ソースとデータ メンバーを渡します。 データ メンバーを明示的に渡す必要がない場合は、空の文字列を渡します。

    注意

    グリッドを初めてバインドする場合は、コントロールの DataSource プロパティと DataMember プロパティを設定できます。 ただし、これらのプロパティがいったん設定されると、後からそれらをリセットすることはできなくなります。 したがって、常に SetDataBinding メソッドを使用することをお勧めします。

    次の例では、DsCustomers1 というデータ セット内の Customers テーブルにプログラムでバインドする方法を示しています。

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

    Customers テーブルがデータ セット内の唯一のテーブルである場合は、グリッドを次の方法でバインドすることもできます。

    DataGrid1.SetDataBinding(DsCustomers1, "")  
    
    DataGrid1.SetDataBinding(DsCustomers1, "");  
    
    dataGrid1->SetDataBinding(dsCustomers1, "");  
    
  3. (オプション) 適切なテーブル スタイルと列スタイルをグリッドに追加します。 テーブル スタイルが存在しない場合、テーブルは表示はされますが、書式設定は最小限のものとなり、すべての列が表示されます。

関連項目