データアダプタ構成ウィザード
更新 : 2007 年 11 月
データアダプタ構成ウィザードを使うと、新規または既存のデータ アダプタのプロパティを設定できます。データアダプタには 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)」を参照してください。