次の方法で共有


方法: 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 サービスから入力されている場合は、通常、コードでサービスのインスタンスを作成し、そのメソッドのいずれかを呼び出してデータセットを返します。 次に、XML Web サービスからローカル データセットにデータセットをマージします。 次の例は、CategoriesServiceという XML Web サービスのインスタンスを作成し、その 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. (省略可能)適切なテーブル スタイルと列スタイルをグリッドに追加します。 テーブル スタイルがない場合は、テーブルが表示されますが、書式設定は最小限で、すべての列が表示されます。

こちらも参照ください