ルックアップ テーブルは、関連テーブル内のレコードのデータを表示する列を持つデータのテーブルです。 次の手順では、ComboBox コントロールを使用して、親テーブルから子テーブルへの外部キーリレーションシップを持つフィールドを表示します。
これら 2 つのテーブルとこのリレーションシップを視覚化するために、親テーブルと子テーブルの例を次に示します。
CustomersTable (親テーブル)
顧客ID | 顧客名 |
---|---|
712 | Paul Koch |
713 | Tamara Johnston |
OrdersTable (子テーブル)
注文ID | 注文日 | 顧客ID |
---|---|---|
903 | 2004 年 2 月 12 日 | 712 |
904 | 2004 年 2 月 13 日 | 713 |
このシナリオでは、1 つのテーブル CustomersTable に、表示して保存する実際の情報が格納されます。 しかし、スペースを節約するために、テーブルは明確さを追加するデータを残します。 もう 1 つのテーブル OrdersTable には、どの顧客 ID 番号がどの注文日と注文 ID に相当するかに関する外観関連の情報のみが含まれています。 顧客の名前に関する言及はありません。
ComboBox コントロール コントロールに 4 つの重要なプロパティが設定され、ルックアップ テーブルが作成されます。
DataSource プロパティには、テーブルの名前が含まれています。
DisplayMember プロパティには、コントロール テキスト (顧客の名前) に表示するテーブルのデータ列が含まれます。
ValueMember プロパティには、格納されている情報 (親テーブルの ID 番号) を含むテーブルのデータ列が含まれます。
SelectedValue プロパティは、ValueMemberに基づいて子テーブルの参照値を提供します。
次の手順では、フォームを参照テーブルとしてレイアウトし、そのフォーム上のコントロールにデータをバインドする方法を示します。 プロシージャを正常に完了するには、前述のように、外部キーリレーションシップを持つ親テーブルと子テーブルを含むデータ ソースが必要です。
ユーザー インターフェイスを作成するには
ToolBoxから、ComboBox コントロールをフォームにドラッグします。
このコントロールは、親テーブルの列を表示します。
他のコントロールをドラッグして、子テーブルから詳細を表示します。 テーブル内のデータの形式によって、選択するコントロールが決まります。 詳細については、「関数別の Windows フォーム コントロール」を参照してください。
BindingNavigator コントロールをフォームにドラッグします。これにより、子テーブル内のデータ間を移動できます。
データに接続し、コントロールにバインドするには
ComboBox を選択し、[スマート タスク] グリフをクリックして [スマート タスク] ダイアログ ボックスを表示します。
[データ バインド項目を使用する] を選択します。
[データ ソース] ドロップダウン ボックスの横にある矢印をクリックします。 データ ソースがプロジェクトまたはフォーム用に構成されている場合は、そのデータ ソースが表示されます。それ以外の場合は、次の手順を実行します (この例では Northwind サンプル データベースの Customers テーブルと Orders テーブルを使用し、かっこで囲んで参照します)。
[プロジェクト データ ソース
追加] をクリックしてデータに接続し、データ ソースを作成します。 データ ソース構成ウィザード ウェルカム ページで、[次へ] をクリックします。
[データソースの種類を選択] ページで、[データベース] をクリックします。
[データ接続の選択] ページの利用可能な接続の一覧から、データ接続を選択します。 目的のデータ接続が使用できない場合は、[新しい接続
選択して新しいデータ接続を作成します。 [はい] クリックし、接続 を保存して、接続文字列をアプリケーション構成ファイルに保存します。
アプリケーションに取り込むデータベース オブジェクトを選択します。 この場合は、外部キーリレーションシップを持つ親テーブルと子テーブル (Customers や Orders など) を選択します。
必要な場合は、既定のデータセット名を置き換えます。
[完了] をクリックします。
[表示メンバー] ドロップダウン ボックスで、コンボ ボックスに表示する列名 (ContactName など) を選択します。
[値メンバー] ドロップダウン ボックスで、子テーブルで参照操作を実行する列 (CustomerID など) を選択します。
選択値 ドロップダウン ボックス内で、Project Data Sources と、親テーブルおよび子テーブルを含む、先ほど作成したデータセットへ移動します。 親テーブルの Value メンバー (Orders.CustomerID など) である子テーブルと同じプロパティを選択します。 適切な BindingSource、データ セット、およびテーブル アダプター コンポーネントが作成され、フォームに追加されます。
BindingNavigator コントロールを子テーブルの BindingSource にバインドします (たとえば、
OrdersBindingSource
)。ComboBox および BindingNavigator コントロール以外のコントロールを、表示する子テーブルの BindingSource の詳細フィールド (
OrdersBindingSource
など) にバインドします。
こちらも参照ください
- BindingSource
- BindingSource コンポーネント
- ComboBox コントロール
- Visual Studio でコントロールをデータにバインドする
.NET Desktop feedback