データアダプター構成ウィザードを使うと、新規または既存のデータ アダプターのプロパティを設定できます。 データアダプターには SQL コマンドが含まれており、アプリケーションでこの SQL コマンドを使うと、データベースからデータセットにデータを読み込んだり、データセットからデータベースに再び書き込んだりできます。 このウィザードでは、オプションとして、アダプターとデータベース間の通信を可能にするデータ接続を作成できます。
データアダプターの構成は、アプリケーションでデータセットを使用する場合の一連の手順に含まれる 1 つのステップです。 ウィザードを実行した後、さらに、別途アプリケーションにデータセットを追加し、データ アダプターでデータセットを使用するための手段となるコードを記述する必要があります。
注意
以前のバージョンの Visual Studio では、アプリケーションとデータベースの通信にデータ アダプターが使用されていました。 データ アダプターは現在も .NET Framework データ プロバイダー (ADO.NET) の主要なコンポーネントですが、TableAdapter はデザイナーで生成されるコンポーネントで、アプリケーションとデータベースの間でデータを操作する処理を簡略化します。 TableAdapter の操作方法の詳細については、「TableAdapter の概要」を参照してください。
ウィザードの実行
ウィザードを実行すると、新しいアダプターを作成したり、既存のアダプターを編集したりできます。 また、既存のデータアダプターに対してウィザードを実行し、アダプターのプロパティを変更できます。
ウィザードを実行するには
次のいずれかを実行します。
新しいアダプターを作成している場合は、ツールボックスからデータアダプター オブジェクトをフォームまたはコンポーネントにドラッグします。
既存のアダプターを編集する場合は、フォームまたはコンポーネントでそのアダプターを選択し、次にコンテキスト メニューの [データアダプターの構成] をクリックします。
ウィザードが起動します。
接続と SQL コマンドの情報を指定します。 情報を指定しやすいように、ウィザードではいくつかのダイアログ ボックスが表示されます。
接続の作成を要求すると、ウィザードは [接続の追加] ダイアログ ボックスと [接続の変更] ダイアログ ボックス (一般) の [接続] タブを表示します。このタブでは、接続のプロバイダー、サーバー名、データベース名、ユーザー名、およびパスワードを指定できます。
SQL ステートメントを作成しやすいように、ウィザードにはクエリ ビルダーが用意されています。このユーティリティを使うと、ビジュアルなツールを使用して Select ステートメントの作成やテストを行うことができます。 クエリ ビルダーを起動するには、SQL ステートメントを求められたときに [クエリ ビルダー] ボタンをクリックします。 詳細については、「クエリおよびビュー デザイナー ツール」を参照してください。
ヒント
ストアド プロシージャの作成を指定する場合は、[SQL スクリプトのプレビュー] をクリックし、ストアド プロシージャの作成にウィザードが使用するスクリプトを表示します。 このスクリプトをコピーして変更し、独自のプロシージャを作成できます。
注意
ウィザードで [キャンセル] をクリックしてもアダプターは作成されますが、プロパティは設定されません。 [プロパティ] ウィンドウで手動でプロパティを設定することも、ウィザードをもう一度実行することもできます。
ウィザードの機能
データアダプター構成ウィザードを使うと、データ アダプター (および必要に応じてデータ接続) の作成プロセス全体をとおして実行できます。 ウィザードは次の処理を行います。
アダプターを作成します。
必要に応じて、データ接続を作成し、その接続を使うようにアダプターを設定します。
データの読み書きに使用する SQL ステートメントまたはストアド プロシージャを作成します。
コマンドが正しいデータを読み書きできるように、SQL ステートメントまたはストアド プロシージャに対するパラメーターを作成および構成します。
データベースとデータセットの間で、テーブル名と列名を割り当てます。
コマンド オブジェクトの構成
ウィザードの作業の中心となるのは、アダプターがデータベースとのデータの受け渡しに使用する 4 つのデータ コマンド オブジェクトの構成です。 これらは、SelectCommand オブジェクトと、オプションの UpdateCommand オブジェクト、InsertCommand オブジェクト、および DeleteCommand オブジェクトです。 各オブジェクトには、データの読み書きに使用する SQL ステートメントまたはストアド プロシージャの名前が含まれています。 各コマンドのプロパティ (特に CommandText プロパティ) は、ユーザーがウィザードで行った選択に従って設定されます。
ウィザードを使うと、コマンドで SQL ステートメントまたはストアド プロシージャを使用できます。 次のオプションがあります。
[SQL ステートメントの使用] - Select ステートメントを指定でき、Select ステートメントの作成を選択した場合は、Select ステートメントの内容に基づいて、対応する Update、Insert、および Delete の各ステートメントをウィザードが作成します。 Update ステートメントと Insert ステートメントには、新しい値を渡すためのパラメーターがあります。 Update、Insert、および Delete の各ステートメントでは、WHERE 句のパラメーターを使用して、データベース内の正しいレコードを指定できます。
[新しいストアド プロシージャの作成] - このオプションは SQL ステートメントの使用と似ていますが、ステートメントではなくストアド プロシージャが生成されます。 SQL ステートメントよりストアド プロシージャの方が動作が速いので、パフォーマンスを重視する場合はこのオプションの選択が考えられます。 このオプションを指定すると、ウィザードは、Select コマンドでの指定内容に基づいて、4 つのコマンドすべてに対してストアド プロシージャを生成します。 自分のデータベース用に新しいストアド プロシージャを作成するように指定できます。 指定しない場合でも、ウィザードがストアド プロシージャの作成に使用した SQL スクリプトを獲得し、後でそのスクリプトを自分用に実行できます。
[既存のストアド プロシージャを使用] - このオプションでは、4 つのコマンドのそれぞれに対してストアド プロシージャを指定します。 ウィザードは、データベースで見つかったストアド プロシージャの名前と詳細を表示します。 このオプションは、4 つのデータベース操作を実行するストアド プロシージャが既にある場合に有効です。
ウィザードの高度なオプション
ウィザードに用意されている高度なオプションを使用すると、データアダプターに対する Update、Insert、および Delete の各コマンドの作成方法を制御できます。 ウィザードの SQL ステートメントの生成ペインで [詳細オプション] をクリックすると、[SQL 生成の詳細オプション] ダイアログ ボックスが表示されます。
このダイアログ ボックスでは、以下のオプションを指定できます。
[INSERT、UPDATE、および DELETE ステートメントの生成] - データアダプターが、Select ステートメントに基づいて、データベースにデータを書き込むためのステートメントまたはストアド プロシージャを追加生成することを示します。 データの読み取りだけにアダプターを使い、データの更新には使用しない場合は、このチェック ボックスをオフにすることで、より効率のよいコードを生成できます。
[オプティミスティック同時実行制御] - データベースからレコードを読み取った後でレコードが変更されているかどうかをテストするロジックを組み込むようウィザードに指示します。
[データセットの更新] - データベースを更新した後でデータベースからレコードを再び読み取るコードを生成するかどうかをウィザードに指示します。 このオプションを指定すると、既定値や自動的にインクリメントされる値のようにデータベースによって挿入される値も含めて、レコードの表示が更新されるようになります。
詳細については、「[SQL 生成の詳細オプション] ダイアログ ボックス」を参照してください。
次の手順
ウィザードが終了すると、データアダプター (およびオプションとして接続) がフォームに追加されます。 ウィザード終了後に行う作業がいくつかあります。 ほとんどの場合に行う必要のある作業と、必要に応じて行う作業があります。
必要な作業
次に示すのは、データアダプター構成ウィザードが終了した後で通常行う作業です。
データアダプターをさらに追加します。 ウィザードが作成するデータアダプターは 1 つだけです。 普通、各データアダプターは、1 つのデータ テーブルに対するデータの読み書きに使われます。 複数のテーブルを含むデータセットを使用する場合は、普通、フォームやコンポーネントにさらにデータアダプターを追加します。 ツールボックスからデータアダプターを追加するたびに、ウィザードを再度実行してそのデータアダプターを構成します。
アダプターのテーブル マップを変更します。 既定では、アダプターは、同じ名前のテーブルおよび列に対する読み書きを行うように想定されています。 ただし、1 つの名前を使用するデータベースから複数の名前を使用するデータセットにデータを読み取る場合があります。 または、データセットで必要な列より多くの列をデータベースから読み取る場合があります。
データセットにデータを格納するためのロジックを追加します。 データ アダプターを使ってデータセットにデータを格納するには、アダプターの Fill メソッドを呼び出します。 この呼び出しによりアダプターの SelectCommand オブジェクトにおいてコマンドが実行されて、結果がデータセットに格納されます。 詳細については、「DataAdapter からの DataSet の読み込み (ADO.NET)」を参照してください。
参照
参照
概念
Visual Studio でのデータへのコントロールのバインド