Share via


チュートリアル: Windows フォームでの関連データの表示

 

発行: 2016年7月

アプリケーションでは、複数のテーブルから取得したデータ、特に、互いに関連し合うテーブルから取得したデータを操作する場合が多くあります。 つまり、親子関係を操作する場合があります。 たとえば、顧客レコードを選択した場合にその顧客の注文が表示されるフォームを作成する場合などです。 関連付けられたレコードをフォームに表示するには、子 BindingSourceDataSource プロパティを親 BindingSource (子テーブルではない) に設定し、子 BindingSourceDataMember プロパティを、親テーブルと子テーブルを相互に結合するデータ リレーションシップに設定します。

このチュートリアルでは、以下のタスクを行います。

  • Windows アプリケーション プロジェクトを作成します。

  • データ ソース構成ウィザードを使用して、Northwind データベースの Customers テーブルと Orders テーブルに基づいてアプリケーションにデータセットを作成して設定します。

  • Customers テーブルのデータを表示するコントロールを追加します。

  • 選択した Customer に基づいて Orders を表示するコントロールを追加します。

  • さまざまな顧客を選択し、その顧客に対して正しい注文が表示されるかどうかを確認して、アプリケーションをテストします。

必須コンポーネント

このチュートリアルを完了するための要件は次のとおりです。

プロジェクトの作成

最初に Windows アプリケーションを作成します。

Windows アプリケーション プロジェクトを作成するには

  1. [ファイル] メニューで新しいプロジェクトを作成します。

  2. プロジェクトに「RelatedDataWalkthrough」という名前を付けます。

  3. [Windows アプリケーション] をクリックし、[OK] をクリックします。 詳細については、「.NET Framework を使用したクライアント アプリケーションの開発」を参照してください。

    RelatedDataWalkthrough プロジェクトが作成され、ソリューション エクスプローラーに追加されます。

データ ソースの作成

このステップでは、Northwind サンプル データベースの Customers テーブルと Orders テーブルに基づいて、データセットを作成します。

データ ソースを作成するには

  1. [データ] メニューの [データ ソースの表示] をクリックします。

  2. [データ ソース] ウィンドウで、[新しいデータ ソースの追加] をクリックしてデータ ソース構成ウィザードを起動します。

  3. [データソースの種類を選択] ページで、[データベース] をクリックし、[次へ] をクリックします。

  4. [データ接続の選択] ページで、次のいずれかの操作を行います。

    • Northwind サンプル データベースへのデータ接続がドロップダウン リストに表示されている場合は選択します。

      または

    • [新しい接続] を選択して [接続の追加] または [接続の変更] ダイアログ ボックスを表示します。

  5. データベースにパスワードが必要な場合は、該当するオプションを選択して重要情報を含め、[次へ] をクリックします。

  6. [アプリケーション構成ファイルに接続文字列を保存] ページで、[次へ] をクリックします。

  7. [データベース オブジェクトの選択] ページの [テーブル] ノードを展開します。

  8. Customers テーブルと Orders テーブルを選択し、[完了] をクリックします。

    プロジェクトに NorthwindDataSet が追加され、[データ ソース] ウィンドウに Customers テーブルが表示されます。

Customers テーブルのデータを表示するコントロールの作成

顧客データ (親レコード) を表示するコントロールを作成するには

  1. [データ ソース] ウィンドウで [Customers] テーブルをクリックし、ドロップダウン矢印をクリックします。

  2. メニューの [詳細] をクリックします。

  3. [データ ソース] ウィンドウから Form1 の一番上にメインの [Customers] ノードをドラッグします。

    説明のラベルが付いたデータ バインド コントロールとレコード間を移動するためのツール ストリップ (BindingNavigator) がフォームに表示されます。 NorthwindDataSetCustomersTableAdapterBindingSource、および BindingNavigator がコンポーネント トレイに表示されます。

Orders テーブルのデータを表示するコントロールの作成

関係を示すデータ ソース ウィンドウ

各顧客 (子レコード) の注文を表示するコントロールを作成するには

  • [データ ソース] ウィンドウで、[Customers] ノードを展開し、Customers テーブルの最後の列を選択します。この列は展開できる [Orders] ノードですが、これを Form1 の一番下にドラッグします。

    フォームに DataGridView が追加され、新しい BindingSource (OrdersBindingSource) と TableAdapter (OrdersTableAdapter) がコンポーネント トレイに追加されます。

    注意

    プロパティ ウィンドウを開き、OrdersBindingSource を選択します。DataSource プロパティと DataMember プロパティを調べ、関連レコードを表示するためのデータ バインディングの設定を確認します。DataSource は、Orders テーブルではなく、CustomersBindingSource (親テーブルの BindingSource) に設定されます。DataMember プロパティは FK_Orders_Customers に設定されます。これは、複数のテーブルを関連付ける DataRelation オブジェクトの名前です。

アプリケーションのテスト

アプリケーションをテストするには

  1. F5 キーを押してアプリケーションを実行します。

  2. CustomersBindingNavigator を使用してさまざまな顧客を選択し、DataGridView に正しい注文が表示されることを確認します。

次の手順

アプリケーションの要件に応じて、マスター/詳細形式のフォームの作成後に、追加の操作を実行できます。 このチュートリアルには、以下のような拡張を行うことができます。

参照

データに関するチュートリアル
ウィンドウ
Visual Studio でのデータへの Windows フォーム コントロールのバインド
データ ソースの概要
TableAdapter の概要
方法: 関連するデータを Windows フォーム アプリケーションに表示する
BindingSource コンポーネントの概要
BindingNavigator コントロールの概要 (Windows フォーム)