チュートリアル: データを検索する Windows フォームの作成
一般的なアプリケーションのシナリオでは、選択したデータをフォーム上に表示します。たとえば、特定の顧客の注文、特定の注文の明細などを表示する場合があります。このシナリオでは、ユーザーがフォームに情報を入力した後、ユーザーの入力をパラメーターとして使用してクエリが実行されます。つまり、パラメーター クエリに基づいてデータが選択されます。クエリは、ユーザーが入力した条件を満たすデータのみを返します。ここでは、特定の都市にいる顧客を返すクエリを作成する方法、およびユーザー インターフェイスを変更して、ユーザーが都市の名前を入力してクエリを実行するボタンを押すことができるようにする方法について説明します。
パラメーター クエリを使用することにより、データベースが最も得意とする作業 (レコードの迅速なフィルター処理) をデータベースに任せることができるため、アプリケーションの効率が高まります。一方、データベース テーブル全体を要求し、それをネットワークを通じて転送し、アプリケーション ロジックを使用して必要なレコードを見つける場合は、アプリケーションが低速になり、効率が低下する可能性があります。
[検索条件ビルダー] ダイアログ ボックスを使って、TableAdapter (およびパラメーター値を受け取ってクエリを実行するコントロール) にパラメーター クエリを追加できます。このダイアログ ボックスを開くには、[データ] メニュー (または TableAdapter スマート タグ) の [クエリの追加] をクリックします。
このチュートリアルでは、以下のタスクを行います。
新しい Windows アプリケーション プロジェクトを作成します。
データ ソース構成ウィザードを使用して、アプリケーションにデータ ソースを作成して構成します。
[データ ソース] ウィンドウで、ドロップ タイプの項目を設定します。詳細については、「方法 : [データ ソース] ウィンドウからドラッグしたときに作成されるコントロールを設定する」を参照してください。
[データ ソース] ウィンドウからフォームに項目をドラッグし、データを表示するコントロールを作成します。
データを表示するコントロールをフォームに追加します。
[検索条件ビルダー] ダイアログ ボックスでの設定を完了します。
フォームにパラメーターを入力し、パラメーター クエリを実行します。
必須コンポーネント
このチュートリアルを完了するための要件は次のとおりです。
- Northwind サンプル データベースにアクセスします。詳細については、「方法 : サンプル データベースをインストールする」を参照してください。
Windows アプリケーションの作成
最初に Windows アプリケーションを作成します。この手順ではプロジェクトへの名前の割り当てはオプションですが、後でこのプロジェクトを保存するため、プロジェクトに名前を付けます。
新しい Windows アプリケーション プロジェクトを作成するには
[ファイル] メニューで新しいプロジェクトを作成します。
プロジェクトに WindowsSearchForm という名前を付けます。
[Windows アプリケーション] をクリックし、[OK] をクリックします。詳細については、「クライアント アプリケーションの開発」を参照してください。
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 フォーム)
概念
Visual Studio 2012 のデータ アプリケーション開発に関する新機能
Visual Studio でのデータへの Windows フォーム コントロールのバインド