方法 : Windows フォーム DataGrid コントロールを使用してマスター/詳細リストを作成する
注意
DataGridView コントロールは、DataGrid コントロールに代わると共に追加の機能を提供します。ただし、DataGrid コントロールは、下位互換性を保つ目的および将来使用する目的で保持されます。 詳細については、「Windows フォームの DataGridView コントロールと DataGrid コントロールの違いについて」を参照してください。
DataSet に一連の互いに関連するテーブルが含まれている場合は、2 つの DataGrid コントロールを使用してデータをマスター/詳細形式で表示できます。 一方の DataGrid をマスター グリッドに指定し、もう一方を詳細グリッドに指定します。 マスター リストのエントリを選択すると、関連するすべての子エントリが詳細リストに表示されます。 たとえば、DataSet に Customers テーブルおよび関連する Orders テーブルが含まれている場合は、Customers テーブルをマスター グリッドに指定し、Orders テーブルを詳細グリッドに指定します。 マスター グリッドから顧客が選択されると、Orders テーブル内でその顧客に関連するすべての注文が、詳細グリッドに表示されます。
プログラムでマスター/詳細リレーションシップを設定するには
2 つの DataGrid コントロールを新規作成し、そのプロパティを設定します。
データセットにテーブルを追加します。
作成するリレーションシップを表す DataRelation 型の変数を宣言します。
リレーションシップの名前と、2 つのテーブルを結び付けるテーブル、列、および項目を指定して、リレーションシップをインスタンス化します。
DataGrid の SetDataBinding メソッドを使用して、各グリッドを 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 フォーム)