注
DataSet クラスと関連クラスは、アプリケーションがデータベースから切断されている間にアプリケーションがメモリ内のデータを操作できるようにする、2000 年代初頭のレガシ .NET Framework テクノロジです。 このテクノロジは、ユーザーがデータを変更し、変更をデータベースに保持できるアプリに特に役立ちます。 データセットは実証済みの成功したテクノロジですが、新しい .NET アプリケーションには Entity Framework Core を使用することをお勧めします。 Entity Framework は、オブジェクト モデルとして表形式データを操作するより自然な方法を提供し、よりシンプルなプログラミング インターフェイスを備えています。
パラメーター化されたクエリは、クエリ内の WHERE
句の条件を満たすデータを返します。 たとえば、顧客リストをパラメーター化して特定の都市の顧客のみを表示するには、顧客の一覧を返す SQL ステートメントの末尾に WHERE City = @City
を追加します。
パラメーター化された TableAdapter クエリは、データセット デザイナーで作成します。[データ] メニューの [データ ソースのパラメーター化] コマンドを使用して、Windows アプリケーションで作成することもできます。 [データ ソースのパラメーター化] コマンドは、パラメーター値を入力してクエリを実行できるコントロールをフォームに作成します。
注
パラメーター化されたクエリを作成するときは、コーディング対象のデータベースに固有のパラメーター表記を使用します。 たとえば、Access データ ソースと OleDb データ ソースでは、パラメーターを示すために疑問符 '?' が使用されるため、 WHERE
句は次のようになります: WHERE City = ?
。
パラメーター化された TableAdapter クエリを作成する
データセット デザイナーでパラメーター化クエリを作成するには
新しい TableAdapter を作成し、必要なパラメーターを持つ
WHERE
句を SQL ステートメントに追加します。 詳細については、「 TableAdapters の作成と構成」を参照してください。または
既存の TableAdapter にクエリを追加し、必要なパラメーターを持つ
WHERE
句を SQL ステートメントに追加します。
データ バインド フォームの設計時にパラメーター化されたクエリを作成するには
データセットに既にバインドされているフォーム上のコントロールを選択します。 詳細については、「 Windows フォーム コントロールを Visual Studio のデータにバインドする」を参照してください。
[ データ ] メニューの [ クエリの追加] を選択します。
[ 検索条件ビルダー ] ダイアログ ボックスに入力し、必要なパラメーターを含む
WHERE
句を SQL ステートメントに追加します。
既存のデータ バインド フォームにクエリを追加するには
Windows フォーム デザイナーでフォームを開きます。
[ データ ] メニューの [ クエリの追加 ] または [ データ スマート タグ] を選択します。
注
[データ] メニューで [クエリの追加] が使用できない場合は、パラメーター化を追加するデータ ソースを表示するフォーム上のコントロールを選択します。 たとえば、フォームが DataGridView コントロールにデータを表示する場合は、それを選択します。 フォームに個々のコントロールにデータが表示される場合は、データ バインド コントロールを選択します。
[ データ ソース テーブルの選択 ] 領域で、パラメーター化を追加するテーブルを選択します。
新しいクエリを作成する場合は 、[新しいクエリ名 ] ボックスに名前を入力します。
または
[既存のクエリ名] ボックスで クエリ を選択します。
[ クエリ テキスト ] ボックスに、パラメーターを受け取るクエリを入力します。
[OK] を選択.
パラメーターを入力するコントロールと [読み込み] ボタンが、 ToolStrip コントロールのフォームに追加されます。
Null 値のクエリ
TableAdapter パラメーターには、現在の値を持たないレコードに対してクエリを実行する場合に null 値を割り当てることができます。 たとえば、WHERE
句に ShippedDate
パラメーターがある次のクエリを考えてみます。
SELECT CustomerID, OrderDate, ShippedDate
FROM Orders
WHERE (ShippedDate = @ShippedDate) OR (ShippedDate IS NULL)
これが TableAdapter に対するクエリの場合、次のコードを使用して出荷されていないすべての注文をクエリできます。
クエリが null 値を受け入れるようにするには:
データセット デザイナーで、null パラメーター値を受け入れる必要がある TableAdapter クエリを選択します。
[ プロパティ ] ウィンドウで [ パラメーター] を選択し、省略記号 (...) ボタンを選択して パラメーター コレクション エディターを開きます。
null 値を許可するパラメーターを選択し、 AllowDbNull プロパティを
true
に設定します。