チュートリアル : ルックアップ テーブルの作成
更新 : 2007 年 11 月
ルックアップ テーブルは、あるテーブルの外部キー フィールドの値に基づいて、別のテーブルの情報を表示する場合に使用します。たとえば、販売データベースの Orders テーブルであれば、次のように使用されます。Orders テーブルの各レコードには、注文した顧客を表す CustomerID が含まれます。CustomerID は、Customers テーブル内の顧客レコードを指す外部キーです。Orders テーブルの Orders 一覧を表示する場合に、CustomerID ではなく、実際の顧客名を表示できます。顧客名は Customers テーブルに含まれており、表示するデータは Orders テーブルに含まれているため、Orders レコードの CustomerID の値を使用してリレーションシップをたどり、わかりやすいデータである顧客名を返すルックアップ テーブルを作成する必要があります。この概念をルックアップ テーブルと呼びます。
このチュートリアルでは、以下のタスクを行います。
新しい Windows アプリケーション プロジェクトを作成します。
データ ソース構成ウィザードを使用して、データセットを作成して構成します。
[データ ソース] ウィンドウから項目をドラッグしたときにフォーム上に作成するコントロールを選択します。詳細については、「方法 : [データ ソース] ウィンドウからドラッグしたときに作成されるコントロールを設定する」を参照してください。
[データ ソース] ウィンドウからフォームに項目をドラッグして、データ バインド コントロールを作成します。
外部キーのリレーションによってバインドされたコントロールに関連するテーブルをドロップして、ルックアップ テーブルを設定します。
前提条件
このチュートリアルを実行するための要件は次のとおりです。
- Northwind サンプル データベースにアクセスします。詳細については、「方法 : サンプル データベースをインストールする」を参照してください。
新しい Windows アプリケーションの作成
新しい Windows アプリケーション プロジェクトを作成するには
[ファイル] メニューで新しいプロジェクトを作成します。
プロジェクトに「LookupTableWalkthrough」という名前を付けます。
[Windows アプリケーション] をクリックし、[OK] をクリックします。詳細については、「Windows ベースのアプリケーションの作成」を参照してください。
LookupTableWalkthrough プロジェクトが作成されてソリューション エクスプローラに追加されます。
新しいデータ ソースの作成
データ ソースを作成するには
[データ] メニューの [データ ソースの表示] をクリックします。
[データ ソース] ウィンドウで、[新しいデータ ソースの追加] をクリックしてデータ ソース構成ウィザードを起動します。
[データソースの種類を選択] ページで、[データベース] をクリックし、[次へ] をクリックします。
[データ接続の選択] ページで、次のいずれかの操作を行います。
Northwind サンプル データベースへのデータ接続がドロップダウン リストに表示されている場合は選択します。
または
[新しい接続] を選択して [接続の追加] または [接続の変更] ダイアログ ボックスを表示します。詳細については、「[接続の追加] ダイアログ ボックスと [接続の変更] ダイアログ ボックス (一般)」を参照してください。
データベースにパスワードが必要な場合は、該当するオプションを選択して重要情報を含め、[次へ] をクリックします。
[アプリケーション構成ファイルに接続文字列を保存] ページで、[次へ] をクリックします。
[データベース オブジェクトの選択] ページの [テーブル] ノードを展開します。
Customers テーブルと Orders テーブルを選択し、[完了] をクリックします。
プロジェクトに NorthwindDataSet が追加され、[データ ソース] ウィンドウに 2 つのテーブルが表示されます。
フォーム上のデータ バインド コントロールの作成
フォームにデータ バインド コントロールを作成するには
[データ ソース] ウィンドウの [Customers] ノードを展開します。
[Orders] ノードのコントロールの一覧の [詳細] をクリックして、関連する Orders テーブルのドロップ タイプを [詳細] に変更します。詳細については、「方法 : [データ ソース] ウィンドウからドラッグしたときに作成されるコントロールを設定する」を参照してください。
関連する [Orders] ノードを展開し、[CustomerID] ノードのコントロールの一覧の [ComboBox] を選択して、[CustomerID] 列のドロップ タイプをコンボ ボックスに変更します。
[データ ソース] ウィンドウから Form1 に [Orders] ノードをドラッグします。
説明のラベルが付いたデータ バインド コントロールとレコード間を移動するためのツール ストリップ (BindingNavigator) がフォームに表示されます。NorthwindDataSet、CustomersTableAdapter、BindingSource、および BindingNavigator がコンポーネント トレイに表示されます。
ルックアップ テーブルの作成
CustomerID コンボ ボックスのプロパティを設定して、ルックアップ テーブルを作成します。
フォーム上にルックアップ テーブルの機能を作成するには
[データ ソース] ウィンドウから Form1 の [CustomerID] ボックスに、メインの Customers ノードを直接ドラッグします。
メモ : 次のテーブルは、参照専用です。前述の手順のドラッグ アンド ドロップ操作によって、プロパティが自動的に設定されています。デザイナでは、下記の「設定の説明」どおりにプロパティが設定されます。ルックアップ テーブルを正しく機能させるには、テーブルの構造に従ってルックアップ テーブルのプロパティを調整しなければならない場合があります。
プロパティ
設定の説明
DataSource
Visual Studio は、このプロパティをコントロールにドラッグしたテーブルに対して作成された BindingSource に設定します (コントロールの作成時に作成された BindingSource とは異なります)。
調整する必要がある場合は、このプロパティを、表示する列を含むテーブルの BindingSource に設定します。(このチュートリアルでは CustomersBindingSource。)
DisplayMember
Visual Studio は、このプロパティをコントロールにドラッグするテーブルの主キーの後で、文字列データ型を含む最初の列に設定します。
調整する必要がある場合は、このプロパティを、表示する列の名前に設定します。
ValueMember
Visual Studio は、このプロパティを主キーに参加している最初の列、またはキーが定義されていない場合は、テーブルの最初の列に設定します。
調整する必要がある場合は、このプロパティを、表示する列を含むテーブルの主キーに設定します。
SelectedValue
Visual Studio は、このプロパティを [データ ソース] ウィンドウからドラッグした元の列に設定します。
調整する必要がある場合は、このプロパティを関連付けられたテーブルの外部キー列に設定します。(このチュートリアルでは Orders テーブルの CustomerID。)
アプリケーションの実行
アプリケーションを実行するには
F5 キーを押します。
注文間を移動し、各注文について Customers テーブルの CompanyName 列が Orders テーブルの CustomerID 列の代わりに [CustomerID] ボックスに表示されることを確認します。
次の手順
アプリケーションの要件に応じて、データをバインドしたフォームの作成後に追加の操作を実行できます。このチュートリアルで行うことができる拡張には次のものがあります。
フォームに検索機能を追加できます。詳細については、「方法 : パラメータ クエリを Windows アプリケーションのフォームに追加する」を参照してください。
データベースに更新を送信する機能を追加します。詳細については、「チュートリアル : データベースへのデータの保存 (単一テーブル)」を参照してください。
[データ ソース] ウィンドウの [ウィザードで DataSet を構成] をクリックして、Orders テーブルをデータセットに追加します。これで、Orders ノード (Customers テーブルの Fax 列の下にある) をフォームにドラッグすると、関連するデータを表示するコントロールを追加できます。詳細については、「方法 : 関連するデータを Windows アプリケーションに表示する」を参照してください。