パラメーター付きの TableAdapter クエリを作成するCreate parameterized TableAdapter queries

パラメーター クエリは、クエリ内の WHERE 句の条件を満たすデータを返します。A parameterized query returns data that meets the conditions of a WHERE clause within the query. たとえば、顧客リストをパラメーター化して、顧客のリストを戻す SQL ステートメントに WHERE City = @City を追加することで、特定の都市の顧客のみが表示されるようにできます。For example, you can parameterize a customer list to display only customers in a certain city by adding WHERE City = @City to the end of the SQL statement that returns a list of customers.

パラメーター化された TableAdapter クエリは、データセットデザイナーで作成します。また、 [データ] メニューの [データソースのパラメーター] 化 コマンドを使用して、Windows アプリケーションで作成することもできます。You create parameterized TableAdapter queries in the Dataset Designer.You can also create them in a Windows application with the Parameterize Data Source command on the Data menu. [データソースのパラメーター化] コマンドを実行すると、フォームにコントロールが作成され、パラメーター値を入力してクエリを実行できます。The Parameterize Data Source command creates controls on your form where you can input the parameter values and run the query.

Note

パラメーター化クエリを作成する場合は、コーディングしているデータベースに固有のパラメーター表記を使用します。When constructing a parameterized query, use the parameter notation that's specific to the database you're coding against. たとえば、Access データ ソースと OleDb データ ソースは疑問符 "?" を使用してパラメーターを表すため、WHERE 句は WHERE City = ? のようになります。For example, Access and OleDb data sources use the question mark '?' to denote parameters, so the WHERE clause would look like this: WHERE City = ?.

パラメーター化された TableAdapter クエリを作成するCreate a parameterized TableAdapter query

データセット デザイナーでパラメーター クエリを作成するにはTo create a parameterized query in the Dataset Designer

  • 新しい TableAdapter を作成し、目的のパラメーターを含む WHERE 句を SQL ステートメントに追加します。Create a new TableAdapter, adding a WHERE clause with the desired parameters to the SQL statement. 詳細については、「 tableadapter の作成と構成」を参照してください。For more information, see Create and configure TableAdapters.

    -または--or-

  • 既存の TableAdapter にクエリを追加し、目的のパラメーターを含む WHERE 句を SQL ステートメントに追加します。Add a query to an existing TableAdapter, adding a WHERE clause with the desired parameters to the SQL statement.

データ バインド フォームの設計時にパラメーター クエリを作成するにはTo create a parameterized query while designing a data-bound form

  1. フォーム上の既にデータセットにバインドされているコントロールを選択します。Select a control on your form that is already bound to a dataset. 詳細については、「 Visual Studio でのデータへの Windows フォームコントロールのバインド」を参照してください。For more information, see Bind Windows Forms controls to data in Visual Studio.

  2. [データ] メニューの [クエリの追加] をクリックします。On the Data menu, select Add Query.

  3. [検索条件ビルダー] ダイアログ ボックスの設定を完了し、目的のパラメーターを含む WHERE 句を SQL ステートメントに追加します。Complete the Search Criteria Builder dialog box, adding a WHERE clause with the desired parameters to the SQL statement.

既存のデータ バインド フォームにクエリを追加するにはTo add a query to an existing data-bound form

  1. Windows フォーム デザイナーでフォームを開きます。Open the form in the Windows Forms Designer.

  2. [データ] メニューの [クエリまたはデータスマートタグの追加] をクリックします。On the Data menu, select Add Query or Data Smart Tags.

    Note

    [データ] メニューの [クエリの追加] が使用できない場合は、パラメーターの追加先のデータ ソースを表示するフォーム上のコントロールを選択します。If Add Query is not available on the Data menu, select a control on the form that displays the data source you want to add the parameterization to. たとえば、フォームに DataGridView コントロールのデータが表示される場合は、そのコントロールを選択します。For example, if the form displays data in a DataGridView control, select it. フォームに個々のコントロールのデータが表示される場合は、いずれかのデータ バインド コントロールを選択します。If the form displays data in individual controls, select any data-bound control.

  3. [データソーステーブルの選択] 領域で、パラメーター化を追加するテーブルを選択します。In the Select data source table area, select the table to which you want to add parameterization.

  4. 新しいクエリを作成する場合は、 [新しいクエリ名] ボックスに名前を入力します。Type a name in the New query name box if you are creating a new query.

    -または--or-

    [既存のクエリ名] ボックスでクエリを選択します。Select a query in the Existing query name box.

  5. [クエリ] テキストボックスに、パラメーターを受け取るクエリを入力します。In the Query Text box, type a query that takes parameters.

  6. [OK] を選択します。Select OK.

    パラメーターを入力するコントロールと [読み込み] ボタンが、ToolStrip コントロールのフォームに追加されます。A control to input the parameter and a Load button are added to the form in a ToolStrip control.

Null 値のクエリQuery for null values

現在の値がないレコードをクエリする場合は、TableAdapter パラメーターに null 値を割り当てることができます。TableAdapter parameters can be assigned null values when you want to query for records that have no current value. たとえば、次のクエリでは、WHERE 句に ShippedDate パラメーターを使用しているとします。For example, consider the following query that has a ShippedDate parameter in its WHERE clause:

SELECT CustomerID, OrderDate, ShippedDate
FROM Orders
WHERE (ShippedDate = @ShippedDate) OR (ShippedDate IS NULL)

これが TableAdapter に対するクエリであった場合は、次のコードで出荷されていないすべての注文に対してクエリを実行できます。If this were a query on a TableAdapter, you could query for all orders that have not been shipped with the following code:

ordersTableAdapter.FillByShippedDate(northwindDataSet.Orders, null);
OrdersTableAdapter.FillByShippedDate(NorthwindDataSet.Orders, Nothing)

クエリで null 値を使用できるようにするには、次のようにします。To enable a query to accept null values:

  1. データセットデザイナーで、null パラメーター値を受け入れる必要がある TableAdapter クエリを選択します。In the Dataset Designer, select the TableAdapter query that needs to accept null parameter values.

  2. [プロパティ] ウィンドウで、 [パラメーター] を選択し、省略記号ボタン (. [..] ) をクリックして、 [パラメーターコレクションエディター] を開きます。In the Properties window, select Parameters, then click the ellipsis (...) button to open the Parameters Collection Editor.

  3. Null 値を許容するパラメーターを選択し、 Allowdbnullプロパティを true に設定します。Select the parameter that allows null values and set the AllowDbNull property to true.

関連項目See also