チュートリアル : Windows アプリケーションのデータ検索フォームの作成
更新 : 2007 年 11 月
一般的なアプリケーションのシナリオでは、選択したデータをフォーム上に表示します。たとえば、特定の顧客の注文、特定の注文の明細などを表示する場合があります。このシナリオでは、ユーザーがフォームに情報を入力した後、ユーザーの入力をパラメータとして使用してクエリが実行されます。つまり、パラメータ クエリに基づいてデータが選択されます。クエリは、ユーザーが入力した条件を満たすデータのみを返します。ここでは、特定の都市にいる顧客を返すクエリを作成する方法、およびユーザー インターフェイスを変更して、ユーザーが都市の名前を入力してクエリを実行するボタンを押すことができるようにする方法について説明します。
パラメータ クエリを使用することにより、データベースが最も得意とする作業 (レコードの迅速なフィルタ処理) をデータベースに任せることができるため、アプリケーションの効率が高まります。一方、データベース テーブル全体を要求し、それをネットワークを通じて転送し、アプリケーション ロジックを使用して必要なレコードを見つける場合は、アプリケーションが低速になり、効率が低下する可能性があります。
[検索条件ビルダ] ダイアログ ボックスを使って、TableAdapter (およびパラメータ値を受け取ってクエリを実行するコントロール) にパラメータ クエリを追加できます。このダイアログ ボックスを開くには、[データ] メニュー (または TableAdapter スマート タグ) の [クエリの追加] をクリックします。
このチュートリアルでは、以下のタスクを行います。
新しい Windows アプリケーション プロジェクトを作成します。
データ ソース構成ウィザードを使用して、アプリケーションにデータ ソースを作成して構成します。
[データ ソース] ウィンドウで、ドロップ タイプの項目を設定します。詳細については、「方法 : [データ ソース] ウィンドウからドラッグしたときに作成されるコントロールを設定する」を参照してください。
[データ ソース] ウィンドウからフォームに項目をドラッグし、データを表示するコントロールを作成します。
データを表示するコントロールをフォームに追加します。
[検索条件ビルダ] ダイアログ ボックスでの設定を完了します。
フォームにパラメータを入力し、パラメータ クエリを実行します。
前提条件
このチュートリアルを実行するための要件は次のとおりです。
- Northwind サンプル データベースにアクセスします。詳細については、「方法 : サンプル データベースをインストールする」を参照してください。
Windows アプリケーションの作成
最初に Windows アプリケーションを作成します。この手順ではプロジェクトへの名前の割り当てはオプションですが、後でこのプロジェクトを保存するため、プロジェクトに名前を付けます。
新しい Windows アプリケーション プロジェクトを作成するには
[ファイル] メニューで新しいプロジェクトを作成します。
プロジェクトに WindowsSearchForm という名前を付けます。
[Windows アプリケーション] をクリックし、[OK] をクリックします。詳細については、「Windows ベースのアプリケーションの作成」を参照してください。
WindowsSearchForm プロジェクトが作成されてソリューション エクスプローラに追加されます。
データ ソースの作成
この手順では、データ ソース構成ウィザードを使用して、データベースからデータ ソースを作成します。接続を作成するには、Northwind サンプル データベースへのアクセス権を持っている必要があります。Northwind サンプル データベースの設定方法については、「方法 : サンプル データベースをインストールする」を参照してください。
データ ソースを作成するには
[データ] メニューの [データ ソースの表示] をクリックします。
[データ ソース] ウィンドウで、[新しいデータ ソースの追加] をクリックしてデータ ソース構成ウィザードを起動します。
[データソースの種類を選択] ページで、[データベース] をクリックし、[次へ] をクリックします。
[データ接続の選択] ページで、次のいずれかの操作を行います。
Northwind サンプル データベースへのデータ接続がドロップダウン リストに表示されている場合は選択します。
または
[新しい接続] を選択して [接続の追加] または [接続の変更] ダイアログ ボックスを表示します。詳細については、「[接続の追加] ダイアログ ボックスと [接続の変更] ダイアログ ボックス (一般)」を参照してください。
データベースにパスワードが必要な場合は、該当するオプションを選択して重要情報を含め、[次へ] をクリックします。
[アプリケーション構成ファイルに接続文字列を保存] ページで、[次へ] をクリックします。
[データベース オブジェクトの選択] ページの [テーブル] ノードを展開します。
Customers テーブルを選択し、[完了] をクリックします。
プロジェクトに NorthwindDataSet が追加され、[データ ソース] ウィンドウに Customers テーブルが表示されます。
フォームの作成
[データ ソース] ウィンドウからフォームに項目をドラッグして、データ バインド コントロールを作成します。
フォームにデータ バインド コントロールを作成するには
[データ ソース] ウィンドウの [Customers] ノードを展開します。
[Customers] ノードを [データ ソース] ウィンドウからフォームにドラッグします。
DataGridView と、レコード間を移動するためのツール ストリップ (BindingNavigator) がフォーム上に表示されます。NorthwindDataSet、CustomersTableAdapter、BindingSource、および BindingNavigator がコンポーネント トレイに表示されます。
クエリへのパラメータ (検索機能) の追加
[検索条件ビルダ] ダイアログ ボックスを使用して元のクエリに WHERE 句を追加できます。
パラメータ クエリとコントロールを作成してパラメータを入力するには
DataGridView コントロールを選択し、[データ] メニューの [クエリの追加] をクリックします。
[検索条件ビルダ] ダイアログ ボックスの [新しいクエリ名] に「FillByCity」と入力します。
[クエリ テキスト] 領域でクエリに WHERE City = @City を追加します。
クエリは次のようになります。
SELECT CustomerID, CompanyName, ContactName, ContactTitle, Address, City, Region, PostalCode, Country, Phone, Fax
FROM Customers
WHERE City = @City
メモ : Access データ ソースと OleDb データ ソースは疑問符 "?" を使用してパラメータを表すため、WHERE 句は WHERE City = ? のようになります。
[OK] をクリックして [検索条件ビルダ] ダイアログ ボックスを閉じます。
FillByCityToolStrip がフォームに追加されます。
アプリケーションのテスト
アプリケーションを実行すると、パラメータを入力として取得できる状態のフォームが開きます。
アプリケーションをテストするには
F5 キーを押してアプリケーションを実行します。
[City] ボックスに「London」と入力し、[FillByCity] をクリックします。
データ グリッドに、パラメータの条件を満たす顧客が取得されます。この例では、[City] 列の値が London の顧客だけがデータ グリッドに表示されます。
次の手順
アプリケーションの要件に応じて、パラメータ付きのフォームを作成した後に、追加の操作を実行できます。このチュートリアルで行うことができる拡張には次のものがあります。
関連するデータを表示するコントロールを追加します。詳細については、「方法 : 関連するデータを Windows アプリケーションに表示する」を参照してください。
データセットを編集し、データベース オブジェクトの追加または削除を行います。詳細については、「方法 : データセットを編集する」を参照してください。
参照
概念
参照
BindingNavigator コントロールの概要 (Windows フォーム)