チュートリアル: Windows フォームでの関連データの表示
アプリケーションでは、複数のテーブルから取得したデータ、特に、互いに関連し合うテーブルから取得したデータを操作する場合が多くあります。つまり、親子関係を操作する場合があります。たとえば、顧客レコードを選択した場合にその顧客の注文が表示されるフォームを作成する場合などです。関連付けられたレコードをフォームに表示するには、子 BindingSource の DataSource プロパティを親 BindingSource (子テーブルではない) に設定し、子 BindingSource の DataMember プロパティを、親テーブルと子テーブルを相互に結合するデータ リレーションシップに設定します。
このチュートリアルでは、以下のタスクを行います。
Windows アプリケーション プロジェクトを作成します。
データ ソース構成ウィザードを使用して、Northwind データベースの Customers テーブルと Orders テーブルに基づいてアプリケーションにデータセットを作成して設定します。
Customers テーブルのデータを表示するコントロールを追加します。
選択した Customer に基づいて Orders を表示するコントロールを追加します。
さまざまな顧客を選択し、その顧客に対して正しい注文が表示されるかどうかを確認して、アプリケーションをテストします。
必須コンポーネント
このチュートリアルを完了するための要件は次のとおりです。
- Northwind サンプル データベースにアクセスします。サンプル データベースをセットアップするには、「方法 : サンプル データベースをインストールする」を参照してください。
プロジェクトの作成
最初に Windows アプリケーションを作成します。
Windows アプリケーション プロジェクトを作成するには
[ファイル] メニューで新しいプロジェクトを作成します。
プロジェクトに「RelatedDataWalkthrough」という名前を付けます。
[Windows アプリケーション] をクリックし、[OK] をクリックします。詳細については、「クライアント アプリケーションの開発」を参照してください。
RelatedDataWalkthrough プロジェクトが作成され、ソリューション エクスプローラーに追加されます。
データ ソースの作成
このステップでは、Northwind サンプル データベースの Customers テーブルと Orders テーブルに基づいて、データセットを作成します。
データ ソースを作成するには
[データ] メニューの [データ ソースの表示] をクリックします。
[データ ソース] ウィンドウで、[新しいデータ ソースの追加] をクリックしてデータ ソース構成ウィザードを起動します。
[データソースの種類を選択] ページで、[データベース] をクリックし、[次へ] をクリックします。
[データ接続の選択] ページで、次のいずれかの操作を行います。
Northwind サンプル データベースへのデータ接続がドロップダウン リストに表示されている場合は選択します。
または
[新しい接続] を選択して [接続の追加] または [接続の変更] ダイアログ ボックスを表示します。詳細については、「[接続の追加] ダイアログ ボックスと [接続の変更] ダイアログ ボックス (一般)」を参照してください。
データベースにパスワードが必要な場合は、該当するオプションを選択して重要情報を含め、[次へ] をクリックします。
[アプリケーション構成ファイルに接続文字列を保存] ページで、[次へ] をクリックします。
[データベース オブジェクトの選択] ページの [テーブル] ノードを展開します。
Customers テーブルと Orders テーブルを選択し、[完了] をクリックします。
プロジェクトに NorthwindDataSet が追加され、[データ ソース] ウィンドウに Customers テーブルが表示されます。
Customers テーブルのデータを表示するコントロールの作成
顧客データ (親レコード) を表示するコントロールを作成するには
[データ ソース] ウィンドウで [Customers] テーブルをクリックし、ドロップダウン矢印をクリックします。
メニューの [詳細] をクリックします。
[データ ソース] ウィンドウから Form1 の一番上にメインの [Customers] ノードをドラッグします。
説明のラベルが付いたデータ バインド コントロールとレコード間を移動するためのツール ストリップ (BindingNavigator) がフォームに表示されます。NorthwindDataSet、CustomersTableAdapter、BindingSource、および BindingNavigator がコンポーネント トレイに表示されます。
Orders テーブルのデータを表示するコントロールの作成
各顧客 (子レコード) の注文を表示するコントロールを作成するには
[データ ソース] ウィンドウで、[Customers] ノードを展開し、Customers テーブルの最後の列を選択します。この列は展開できる [Orders] ノードですが、これを Form1 の一番下にドラッグします。
フォームに DataGridView が追加され、新しい BindingSource (OrdersBindingSource) と TableAdapter (OrdersTableAdapter) がコンポーネント トレイに追加されます。
[!メモ]
[プロパティ] ウィンドウを開き、OrdersBindingSource を選択します。DataSource プロパティと DataMember プロパティを調べ、関連レコードを表示するためのデータ バインディングの設定を確認します。DataSource は、Orders テーブルではなく、CustomersBindingSource (親テーブルの BindingSource) に設定されます。DataMember プロパティは FK_Orders_Customers に設定されます。これは、複数のテーブルを関連付ける DataRelation オブジェクトの名前です。
アプリケーションのテスト
アプリケーションをテストするには
F5 キーを押してアプリケーションを実行します。
CustomersBindingNavigator を使用してさまざまな顧客を選択し、DataGridView に正しい注文が表示されることを確認します。
次の手順
アプリケーションの要件に応じて、マスター/詳細形式のフォームの作成後に、追加の操作を実行できます。このチュートリアルには、以下のような拡張を行うことができます。
- Customers テーブルにパラメーター化を追加して Customers レコードをフィルター処理します。これを行うには、Customers テーブルのデータを表示するいずれかのコントロールを選択し、スマート タグをクリックし、[クエリの追加] をクリックします。[検索条件ビルダー] ダイアログ ボックスに入力します。詳細については、「方法: パラメーター クエリを Windows フォーム アプリケーションに追加する」を参照してください。
参照
処理手順
方法: 関連するデータを Windows フォーム アプリケーションに表示する
関連項目
BindingNavigator コントロールの概要 (Windows フォーム)
概念
Visual Studio 2012 のデータ アプリケーション開発に関する新機能
Visual Studio でのデータへの Windows フォーム コントロールのバインド