方法: Windows フォーム アプリケーションでルックアップ テーブルを作成する
検索テーブルは、親テーブルのメイン ノードを [データ ソース] ウィンドウ からフォームのコントロールにドラッグすることによって作成できます。コントロールは、事前に関連する子テーブルの列にバインドされている必要があります。
検索テーブルという用語は、関連する 2 つのデータ テーブルにバインドされているコントロールを表します。この検索コントロールは、2 番目のテーブルで選択されている値に基づいて最初のテーブルからデータを表示します。
たとえば、販売データベースの Orders テーブルであれば、次のように使用されます。Orders テーブルの各レコードには、注文した顧客を表す CustomerID が含まれます。CustomerID は、Customers テーブルの顧客レコードを指す外部キーです。このシナリオでは、[データ ソース] ウィンドウの Orders テーブルを展開し、メイン ノードを [詳細] に設定し、CustomerID 列が ComboBox (または検索バインドをサポートするその他のコントロール) を使用するように設定し、Orders ノードをフォームにドラッグします。次に、関連する列にバインドされているコントロールに Customers ノードをドラッグします。この場合は ComboBox が CustomerID 列にバインドされます。
検索コントロールをデータバインドするには
[データ ソース] ウィンドウを開きます。
[!メモ]
検索テーブルを作成するには、関連付けられた 2 つのテーブルまたはオブジェクトが [データ ソース] ウィンドウで使用可能になっている必要があります。詳細については、「方法: 関連するデータを Windows フォーム アプリケーションに表示する」を参照してください。
[データ ソース] ウィンドウで、親テーブルとそのすべての列および関連する子テーブルとそのすべて列が表示されるまでノードを展開します。
[!メモ]
子テーブルのノードは、拡張可能な子ノードとして親テーブルに表示されます。
子テーブルのノードのコントロール一覧の [詳細] を選択し、子テーブルのドロップ タイプを [詳細] に変更します。詳細については、「方法 : [データ ソース] ウィンドウからドラッグしたときに作成されるコントロールを設定する」を参照してください。
2 つのテーブルを関連付けるノードの場所を探し (上の例では CustomerID ノード)、コントロール一覧の [ComboBox] を選択してドロップ型を ComboBox に変更します。
メインの子テーブルのノードを [データ ソース] ウィンドウからフォームにドラッグします。
説明のラベルが付いたデータ バインド コントロールとツール ストリップ (BindingNavigator) がフォームに表示されます。DataSet、TableAdapter、BindingSource、および BindingNavigator がコンポーネント トレイに表示されます。
次に、[データ ソース] ウィンドウからメインの親テーブルのノードを検索コントロール (ComboBox) に直接ドラッグします。
これで検索バインドが確立されます。コントロールに設定された個々のプロパティについては、次の表を参照してください。
プロパティ
設定の説明
DataSource
Visual Studio は、このプロパティをコントロールにドラッグしたテーブルに対して作成された BindingSource に設定します (コントロールの作成時に作成された BindingSource とは異なります)。
調整する必要がある場合は、これを表示する列を含むテーブルの BindingSource に設定します。
DisplayMember
Visual Studio は、このプロパティをコントロールにドラッグするテーブルの主キーの後で、文字列データ型を含む最初の列に設定します。
調整する必要がある場合は、これを表示する列の名前に設定します。
ValueMember
Visual Studio は、このプロパティを主キーに参加している最初の列、またはキーが定義されていない場合は、テーブルの最初の列に設定します。
調整する必要がある場合は、これを表示する列を含むテーブルの主キーに設定します。
SelectedValue
Visual Studio は、このプロパティを [データ ソース] ウィンドウからドロップした元の列に設定します。
調整する必要がある場合は、これを関連付けられたテーブルの外部キー列に設定します。
参照
処理手順
チュートリアル: Windows フォーム アプリケーションでのルックアップ テーブルの作成
チュートリアル: 検索データ バインディングをサポートする Windows フォーム ユーザー コントロールの作成
方法 : Windows フォーム ComboBox、ListBox、または CheckedListBox コントロールのルックアップ テーブルを作成する
方法 : Windows フォーム BindingSource コンポーネントを使用してルックアップ テーブルを作成する
概念
Visual Studio 2012 のデータ アプリケーション開発に関する新機能
Visual Studio でのデータへの Windows フォーム コントロールのバインド