次の方法で共有


方法 : Windows フォーム DataGrid コントロールを使用してマスター/詳細リストを作成する

注意

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

DataSet に一連の互いに関連するテーブルが含まれている場合は、2 つの DataGrid コントロールを使用してデータをマスター/詳細形式で表示できます。 一方の DataGrid をマスター グリッドに指定し、もう一方を詳細グリッドに指定します。 マスター リストのエントリを選択すると、関連するすべての子エントリが詳細リストに表示されます。 たとえば、DataSet に Customers テーブルおよび関連する Orders テーブルが含まれている場合は、Customers テーブルをマスター グリッドに指定し、Orders テーブルを詳細グリッドに指定します。 マスター グリッドから顧客が選択されると、Orders テーブル内でその顧客に関連するすべての注文が、詳細グリッドに表示されます。

プログラムでマスター/詳細リレーションシップを設定するには

  1. 2 つの DataGrid コントロールを新規作成し、そのプロパティを設定します。

  2. データセットにテーブルを追加します。

  3. 作成するリレーションシップを表す DataRelation 型の変数を宣言します。

  4. リレーションシップの名前と、2 つのテーブルを結び付けるテーブル、列、および項目を指定して、リレーションシップをインスタンス化します。

  5. DataSet オブジェクトの Relations コレクションにリレーションシップを追加します。

  6. DataGridSetDataBinding メソッドを使用して、各グリッドを DataSet にバインドします。

    次の例は、前に生成した DataSet (ds) 内の Customers テーブルと Orders テーブルの間にマスター/詳細リレーションシップを設定する方法を示しています。

    Dim myDataRelation As DataRelation
    myDataRelation = New DataRelation _
       ("CustOrd", ds.Tables("Customers").Columns("CustomerID"), _
       ds.Tables("Orders").Columns("CustomerID"))
    ' Add the relation to the DataSet.
    ds.Relations.Add(myDataRelation)
    GridOrders.SetDataBinding(ds, "Customers")
    GridDetails.SetDataBinding(ds, "Customers.CustOrd")
    
    DataRelation myDataRelation;
    myDataRelation = new DataRelation("CustOrd", ds.Tables["Customers"].Columns["CustomerID"], ds.Tables["Orders"].Columns["CustomerID"]);
    // Add the relation to the DataSet.
    ds.Relations.Add(myDataRelation);
    GridOrders.SetDataBinding(ds,"Customers");
    GridDetails.SetDataBinding(ds,"Customers.CustOrd");
    
    DataRelation^ myDataRelation;
    myDataRelation = gcnew DataRelation("CustOrd",
       ds->Tables["Customers"]->Columns["CustomerID"],
       ds->Tables["Orders"]->Columns["CustomerID"]);
    // Add the relation to the DataSet.
    ds->Relations->Add(myDataRelation);
    GridOrders->SetDataBinding(ds, "Customers");
    GridDetails->SetDataBinding(ds, "Customers.CustOrd");
    

参照

処理手順

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

参照

DataGrid コントロールの概要 (Windows フォーム)

その他の技術情報

DataGrid コントロール (Windows フォーム)