Share via


方法 : Windows フォーム BindingSource コンポーネントを使用してルックアップ テーブルを作成する

更新 : 2007 年 11 月

ルックアップ テーブルは、関連するテーブル内のレコードのデータを表示する列を持つ、データ テーブルです。以下の手順では、ComboBox コントロールを使用して、親テーブルから子テーブルへの外部キー リレーションシップを持つフィールドを表示します。

これら 2 つのテーブルとこのリレーションシップをイメージするための一助として、親テーブルと子テーブルの例を次に示します。

CustomersTable (親テーブル)

CustomerID

CustomerName

712

Paul Koch

713

Tamara Johnston

OrdersTable (子テーブル)

OrderID

OrderDate

CustomerID

903

February 12, 2004

712

904

February 13, 2004

713

このシナリオでは、一方のテーブル (CustomersTable) に、表示および保存する実際の情報を格納します。ただし、領域を節約するために、このテーブルには、情報を明確化するデータが含まれていません。 もう一方のテーブル (OrdersTable) には、顧客 ID 番号に対応する発注日および発注 ID に関する表示関連情報のみが格納されます。顧客名の記述は含まれません。

ルックアップ テーブルを作成するには、次の 4 つの重要なプロパティを ComboBox コントロール (Windows フォーム) コントロールで設定します。

  • DataSource プロパティには、テーブルの名前が格納されます。

  • DisplayMember プロパティには、コントロール テキスト (顧客名) として表示する、テーブルのデータ列が格納されます。

  • ValueMember プロパティには、格納された情報 (親テーブル内の ID 番号) に関連付けられた、テーブルのデータ列が格納されます。

  • SelectedValue プロパティは、ValueMember に基づいて、子テーブルのルックアップ値を提供します。

以下の手順では、フォームをルックアップ テーブルとしてレイアウトし、フォームのコントロールにデータをバインドする方法を示します。この手順を完了するには、データ ソースと共に、前記のような外部キー リレーションシップを持つ、親テーブルと子テーブルから成るデータ ソースが必要です。

ユーザー インターフェイスを作成するには

  1. ツールボックスから、フォームに ComboBox コントロールをドラッグします。

    このコントロールは、親テーブルの列を表示します。

  2. 子テーブルの詳細情報を表示する他のコントロールをドラッグします。テーブル内のデータの形式によって、選択するコントロールが決まります。詳細については、「Windows フォーム コントロールの機能別一覧」を参照してください。

  3. BindingNavigator コントロールをフォームにドラッグします。これで、子テーブル内のデータを移動できるようになります。

データに接続し、データをコントロールにバインドするには

  1. ComboBox を選択し、スマート タスク グリフをクリックして、[スマート タスク] ダイアログ ボックスを表示します。

  2. [データ バインド項目を使用する] を選択します。

  3. [データ ソース] ボックスの横の矢印をクリックします。プロジェクトまたはフォームに対してデータ ソースが既に設定されている場合は、データ ソースが表示されますが、設定されていない場合は、次の手順を実行します (この例では、Northwind サンプル データベースの Customers テーブルと Orders テーブルを使用します。これらのテーブルについてはかっこ内で言及しています)。

    1. [プロジェクト データ ソースの追加] をクリックしてデータに接続し、データ ソースを作成します。

    2. データ ソース構成ウィザードの [ようこそ] ページで、[次へ] をクリックします。

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

    4. [データ接続の選択] ページの利用可能な接続の一覧からデータ接続を選択します。目的のデータ接続を選択できない場合は、[新しい接続] を選択して新しいデータ接続を作成します。詳細については、「[接続の追加] ダイアログ ボックスと [接続の変更] ダイアログ ボックス (一般)」を参照してください。

    5. [次の名前で接続を保存する] をオンにして、接続文字列をアプリケーション構成ファイルに保存します。

    6. アプリケーションで使用するデータベース オブジェクトを選択します。この場合、外部キー リレーションシップを持つ親テーブルと子テーブル (たとえば、Customers と Orders) を選択します。

    7. 必要に応じて、既定のデータセット名を変更します。

    8. [完了] をクリックします。

  4. [メンバの表示] ボックスで、コンボ ボックスに表示する列名 (たとえば、ContactName) を選択します。

  5. [値メンバ] ボックスで、子テーブルでルックアップ操作を実行する列 (たとえば、CustomerID) を選択します。

  6. [選択された値] ボックスで、[プロジェクト データ ソース] に移動し、親テーブルと子テーブルを含む、作成したばかりのデータセットに移動します。親テーブルの Value Member に対応する、子テーブルのプロパティ (たとえば、Orders.CustomerID) を選択します。適切な BindingSource、データ セット、およびテーブル アダプタ コンポーネントが作成され、フォームに追加されます。

  7. BindingNavigator コントロールを子テーブルの BindingSource (たとえば、OrdersBindingSource) にバインドします。

  8. ComboBox コントロールおよび BindingNavigator コントロール以外のコントロールを、表示する、子テーブルの BindingSource (たとえば、OrdersBindingSource) の詳細フィールドにバインドします。

参照

参照

BindingSource

その他の技術情報

BindingSource コンポーネント

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

Windows アプリケーションのフォームでのデータの表示