• 検索結果がありません。

TableAdapterクラス

N/A
N/A
Protected

Academic year: 2021

シェア "TableAdapterクラス"

Copied!
44
0
0

読み込み中.... (全文を見る)

全文

(1)

■ TableAdapter の概要 ■ TableAdapter を使用すると、アプリケーションとデータベース間で通信する事が出来る様に成る。具 体的には、TableAdapter は、データベースに接続し、クエリやストアドプロシージャを実行し、返さ れたデータが格納された新しいデータテーブルを返すか、返されたデータを既存のDataTable に格納す る。TableAdapter は、更新されたデータをアプリケーションからデータベースに送り返す場合にも使 用する。

Visual Studio の以前のバージョンのユーザーは、TableAdapter を、組み込みの接続オブジェクトを持 ち、複数のクエリを含める事の出来るDataAdapter で有ると看做す事も可能で有る。TableAdapter に 追加された各クエリは、パブリックメソッドと仕て公開され、オブジェクトに対する他のメソッドや関 数と同様に呼び出す事が出来る。 TableAdapter では、DataAdapter の標準の機能に加え、共通のスキーマを共有するクエリを、関連す る型指定されたDataTable でカプセル化する、新しい型指定されたメソッドを使用出来る。詰まり、同 じスキーマに準拠するデータを返すクエリで有る限り、1 つの TableAdapter に幾つでもクエリを追加 出来る。

以前のバージョンのVisual Studio では、アプリケーションとデータベースの通信に ADO.NET データ アダプタが使用されて居た。データアダプタは現在も.NET Framework データプロバイダの主要なコン ポーネントだが、TableAdapter は、DataAdapter の機能を向上させる為にデザイナで生成されるコン ポーネントで有る。TableAdapter には、通常、データを取得してデータベースを更新する為の Fill メ ソッドとUpdate メソッドが含まれて居る。 TableAdapter は、データセットデザイナに依って、厳密に型指定されたデータセット内に作成される。 TableAdapter は、データソース構成ウィザードを使用して新しいデータセットを作成する間に、作成 出来る。亦、TableAdapter は、TableAdapter 構成ウィザードを使用して既存のデータセット内に作成 する事も、サーバーエクスプローラからデータセットデザイナにデータベースオブジェクトをドラッグ して作成する事も出来る。詳細に付いては、「TableAdapter を作成する方法」を参照され度い。 TableAdapter は、データセットデザイナでデザインされるが、生成される TableAdapter のクラスは、 DataSet の入れ子にされたクラスと仕て生成される訳では無い。此等のクラスは、各データセットに固 有の、個別の名前空間に格納される。例えば、NorthwindDataSet と謂う名前のデータセットが有る場 合 、 NorthwindDataSet 内 の DataTable に 関 連 付 け ら れ た TableAdapter は 、 NorthwindDataSetTableAdapters名前空間に格納される。プログラムで特定のTableAdapter にアクセ スするには、TableAdapter の新しいインスタンスを宣言する必要が有る。例えば、次の様に宣言する。

Visual Basic Dim northwindDataSet As New NorthwindDataSet( ) Dim customersTableAdapter As _

New NorthwindDataSetTableAdapters.CustomersTableAdapter( ) customersTableAdapter.Fill(northwindDataSet.Customers)

C#

NorthwindDataSet northwindDataSet = new NorthwindDataSet( );

NorthwindDataSetTableAdapters.CustomersTableAdapter customersTableAdapter = new NorthwindDataSetTableAdapters.CustomersTableAdapter( );

customersTableAdapter.Fill(northwindDataSet.Customers);

(2)

■ 関連付けられた DataTable スキーマ

TableAdapter を作成する場合、最初のクエリやストアドプロシージャは、TableAdapter の関連 DataTable のスキーマを定義する為に使用される。最初のクエリやストアドプロシージャを実行するに は、TableAdapter のメインの Fill メソッド(TableAdapter の関連 DataTable に値を格納するメソッ ド)を呼び出す。TableAdapter のメインのクエリに対する変更は、関連付けられたデータテーブルの スキーマに反映される。例えば、メインのクエリから列を削除すると、関連付けられたデータテーブル から列が削除される。TableAdapter に関する他のクエリで、メインのクエリに無い列の値を返す SQL ステートメントを使用する場合、デザイナに依って、メインのクエリと其他のクエリの間で、列の変更 の同期が試みられる。詳細に付いては、「TableAdapter を編集する方法」を参照され度い。 ■ TableAdapter 更新コマンド TableAdapter の更新機能は、TableAdapter ウィザードで提供されるメインのクエリに基づく情報が何 の程度存在するかに依って異なる。例えば、複数のテーブル(JOIN)、スカラ値、ビュー、又は、集約 関数の結果から値を取得する様に設定されたTableAdapter の場合、最初の作成時には、基に成るデー タベースに更新を戻す機能が無い。但し、[プロパティ] ウィンドウで手動で INSERT、UPDATE、及 び、DELETE の各コマンドを設定する事が出来る。 ■ TableAdapter クエリ 標準のデータアダプタと異なり、TableAdapter には関連する各データテーブルにデータを格納する為 に複数のクエリを設定出来る。夫々れのクエリが、関連するデータテーブルと同じスキーマに従ったデ ータを返す限り、アプリケーションに必要なクエリを幾つでもTableAdapter に定義出来る。此れに依 り、多様な基準を満たすデータの読み込みが可能に成る。例えば、アプリケーションに顧客のテーブル

(3)

が含まれて居る場合、名前が特定の英字で始まる総ての顧客を此のテーブルに格納するクエリ、同じ州 内の総ての顧客を此のテーブルに格納するクエリ等を作成出来る。特定の州内の顧客を Customers テ ーブルに格納するには、州の値を示すパラメータを受け取るFillByState クエリを、SELECT * FROM Customers WHERE State = @State の様に作成する。此のクエリは、FillByState メソッドを呼び出し CustomerTableAdapter.FillByState("WA") の様にパラメータ値を渡して、実行する。詳細に付いては、 「TableAdapter クエリを作成する方法」を参照され度い。

TableAdapter のデータテーブルと同じスキーマのデータを返すクエリの他に、スカラ(Single 型)値 を返すクエリを追加出来る。例えば、顧客数を返すクエリ(SELECT Count(*) From Customers)は、 返されるデータがテーブルのスキーマに準拠して居なくても、CustomersTableAdapter に対しては有 効で有る。 ■ ClearBeforeFill プロパティ TableAdapter では、DataAdapter の基本クラスで使用出来ないプロパティを追加出来る。既定では、 TableAdapter のデータテーブルに値を格納するクエリを実行する度に、データが消去され、クエリ結 果丈がテーブルに読み込まれる。クエリから返されたデータをデータテーブル内の既存のデータに追加 やマージする場合は、TableAdapter の ClearBeforeFill プロパティを false に設定する。データを消去 するか何うかに関係無く、更新をデータベースに返す事が必要な場合は、明示的に送信する必要が有る。 其のテーブルに値を格納する別のクエリを実行する前に、テーブル内のデータに加えた変更を保存して 置く。詳細に付いては、「TableAdapter を使用してデータを更新する方法」を参照され度い。

■ TableAdapter の継承

TableAdapter では、設定された DataAdapter をカプセル化する事に依り、標準データアダプタの機能 が拡張される。既定では、TableAdapter は、Component から継承され、DataAdapter クラスにキャス ト出来ない。TableAdapter を DataAdapter にキャストすると、InvalidCastException が発生する。 TableAdapter の基本クラスを変更するには、データセットデザイナで TableAdapter の Base Class プ ロパティにComponent から派生したクラスを入力する。

■ TableAdapter のメソッドとプロパティ

TableAdapter クラスは、.NET Framework に属さないので、ドキュメントやオブジェクトブラウザで 検索出来ない。此のクラスは、デザイン時に、前述の孰れかのウィザードを使用する事に依り作成され る。TableAdapter の作成時に TableAdapter に割り当てられる名前は、処理して居るテーブルの名前に 基づく。例えば、Orders と謂う名前のデータベース内に有るテーブルに基づいて TableAdapter を作成 する場合、其のTableAdapter の名前は、OrdersTableAdapter に成る。TableAdapter のクラス名は、 データセットデザイナのName プロパティを使用して変更出来る。

TableAdapter で共通に使用されるメソッドとプロパティを次に示す。

メンバ 説明

TableAdapter.Fill TableAdapter の関連付けられたデータテーブルに、TableAdapter の SELECT コマンドの実行結果が格納される。詳細に付いては、「データ セットにデータを読み込む方法」を参照され度い。 TableAdapter.Update 変更をデータベースに送り返す。詳細に付いては、「TableAdapter を使 用してデータを更新する方法」を参照され度い。 TableAdapter.GetData データが格納された新しいDataTable を返す。 TableAdapter.Insert データテーブル内に新しい行を作成する。詳細に付いては、「DataTable に行を追加する方法」を参照され度い。 TableAdapter.ClearBeforeFill 孰れかの Fill メソッドを呼び出す前に、データテーブルが空に成って居 るか何うかを確認する。

(4)

■ TableAdapter 更新メソッド

TableAdapter では、データコマンドを使用して、データベースからの読み取りと書き込みを実行する。 TableAdapter の最初の Fill(メイン)クエリは、関連データテーブルのスキーマや TableAdapter.Update に関連付けられたInsertCommand、UpdateCommand、及び、DeleteCommand の各コマンドを作成 する基に成る。其の為、TableAdapter の Update メソッドを呼び出すと、TableAdapter クエリの構成 ウィザードで追加したクエリではなく、TableAdapter の元の設定時に作成されたステートメントが実 行される。 TableAdapter を使用すると、通常実行するコマンド操作を効果的に実行出来る。例えば、アダプタの Fill メソッドを呼び出すと、其の SelectCommand プロパティに設定されて居るデータコマンドがアダ プタに依って実行され、データリーダー(SqlDataReader 等)に依って結果セットがデータテーブルに 読み込まれる。同様に、アダプタのUpdate メソッドを呼び出すと、データテーブル内で変更された各 レコードに対して、UpdateCommand、InsertCommand、及び、DeleteCommand の各プロパティに 設定されて居る適切なコマンドが実行される。 メモ:メインのクエリに充分な情報が有る場合、TableAdapter の生成時に既定で InsertCommand、 UpdateCommand、及び、DeleteCommand の各コマンドが作成される。TableAdapter のメインのク エリが単一のテーブル SELECT ステートメントより複雑な場合、デザイナで InsertCommand、 UpdateCommand、及び、DeleteCommand を生成出来ない事が有る。此等のコマンドが生成されて居 ない場合、TableAdapter.Update メソッドの実行時にエラーが発生する。 ■ TableAdapter の GenerateDbDirectMethods InsertCommand、UpdateCommand、及び、DeleteCommand 以外に、データベースに対して直接実 行 出 来 る メ ソ ッ ド も 、TableAdapter に 設 定 出 来 る 。 此 等 の メ ソ ッ ド ( TableAdapter.Insert 、 TableAdapter.Update、及び、TableAdapter.Delete)は、データベース内でデータを直接操作する為に 呼び出す事が出来る。 此等の直接メソッドを作成しない場合は、TableAdapter の GenerateDbDirectMethods プロパティを false に設定する([プロパティ] ウィンドウ内)。TableAdapter に追加される其他のクエリはスタンド アロンクエリであり、此等のメソッドを生成しない。 ■ TableAdapter での Null 許容型のサポート

TableAdapter は、Null 許容型の Nullable(Of T) 及び T? をサポートして居る。Visual Basic の null 許容型の詳細に付いては、「定義された値を持たない可能性の有る値型」を参照され度い。C#の null 許 容型の詳細に付いては、「Null 許容型の使用(C#プログラミングガイド)」を参照され度い。

(5)

■ TableAdapter を作成する方法 ■ TableAdapter を使用すると、アプリケーションとデータベース間で通信出来る。具体的には、 TableAdapter は、データベースに接続し、データベースに対してクエリやストアドプロシージャを実 行し、返されたデータを新しいデータテーブルに設定して返すか、既存の DataTable に設定する。 TableAdapters は、更新したデータをアプリケーションからデータベースに送り返す時にも使用する。 次の孰れかの操作を実行して、TableAdapter を作成出来る。 ・データセットデザイナからTableAdapter 構成ウィザードを実行する。 ・データソース構成ウィザードを実行し、データソースの種類と仕て [データベース] 又は [Web サー ビス] の孰れかを選択する。 ・サーバーエクスプローラからデータセットデザイナにデータベースオブジェクトをドラッグする。 TableAdapter に付いては、「TableAdapter の概要」を参照され度い。 ■ TableAdapter 構成ウィザードを使用した TableAdapter の作成 TableAdapter 構成ウィザードは、ウィザードに指定した情報に基づいて 1 つの TableAdapter を作成す る。 TableAdapter 構成ウィザードで TableAdapter を作成するには 1.データセットデザイナでデータセットを開く。詳細に付いては、「データセットデザイナでデータ セットを開く方法」を参照され度い。 2.[ツールボックス] の [データセット] タブから、[TableAdapter] をデザインサーフェイスにドラッ グする。 3.TableAdapter 構成ウィザードが起動する。 ウィザードが完了すると、データテーブルとTableAdapter がデータセットに追加される。詳細に付い ては、「TableAdapter 構成ウィザード」を参照され度い。

(6)

■ TableAdapter 構成ウィザード ■ TableAdapter 構成ウィザードを使用して、厳密に型指定されたデータセットの TableAdapter を作成と 編集する。此のウィザードでは、ウィザードに入力した SQL ステートメントやデータベース内の既存 のストアドプロシージャに基づいてTableAdapter が作成される。此のウィザードを使用すると、ウィ ザードに入力した SQL ステートメントに基づいて、データベース内に新しいストアドプロシージャを 作成する事も出来る。 TableAdapter は、データベースに接続し、データベースに対してクエリやストアドプロシージャを実 行し、クエリやストアドプロシージャに依って返されたデータをDataTable に格納する。TableAdapter は、既存のデータテーブルにデータを格納するのに加え、データが格納された新しいデータテーブルを 返す事も出来る。詳細に付いては、「TableAdapter の概要」を参照され度い。 ■ ウィザードの実行 ウィザードを実行し、TableAdapter と此れに関連する DataTable の作成や編集を行う。詳細に付いて は、「TableAdapter 構成ウィザードを開始する方法」を参照され度い。 TableAdapter 構成ウィザードを起動して新しい TableAdapter を作成するには 1.データセットデザイナでデータセットを開く。 データセットデザイナでデータセットを開くには、ソリューションエクスプローラで、データセッ ト(.xsd ファイル)をダブルクリックするか、又は、[データソース] ウィンドウで、開くデータセ ットを選択して右クリックし、[デザイナで DataSet を編集] を選択する。 メモ:データセットがプロジェクトに無い場合は、「方法:型指定されたデータセットを作成する」 を参照され度い。 2.新しい TableAdapter を作成する場合は、ツールボックスの [データセット] タブからデータセッ ト デザイナに TableAdapter オブジェクトをドラッグする。 3.[データ接続の選択] ページで、現在利用出来る接続の一覧からデータ接続を選択するか、[新しい 接続] を選択して新しい接続を作成する。 メモ:[新しい接続] を選択すると、[接続の追加] ダイアログボックスと [接続の変更] ダイアログ ボックス(一般)が開く。 TableAdapter 構成ウィザードを起動して既存の TableAdapter を編集するには 1.データセットデザイナでデータセットを開く。 2.データセットデザイナで TableAdapter を右クリックし、[構成] をクリックする。ウィザードに [SQL ステートメントの生成] ページ、又は、[コマンドを既存のストアドプロシージャにバインド する] ページが表示される。孰れが表示されるかは、TableAdapter の初期構成に依り異なる。 3.ウィザードの指示に従う。 ■ データ接続の選択 接続の一覧から既存の接続を選択するか、[新しい接続] をクリックして [接続の追加] ダイアログボッ クスと [接続の変更] ダイアログボックス(一般)を開き、データベースへの接続を作成する。

(7)

[接続のプロパティ] ダイアログボックスへの入力を完了すると、[接続の詳細情報] 領域に、選択したプ ロバイダと接続文字列に関する読み取り専用の情報が表示される。 ■ アプリケーション構成ファイルへの接続文字列の保存 接続文字列をアプリケーション構成ファイルに格納するには、[次の名前で接続を保存する] をオンにす る。接続の名前を入力するか、予め入力されて居る既定の名前を使用する。 接続文字列をアプリケーション構成ファイルに保存すると、データベース接続の変更時のアプリケーシ ョンの保守プロセスが簡単に成る。データベース接続に変更が加えられた場合は、アプリケーション構 成ファイル内の接続文字列を編集出来る。此の方法を使うと、ソースコードを編集してアプリケーショ ンを再コンパイルする必要は無い。アプリケーション構成ファイル内の接続文字列を編集する方法に付 いては、「接続文字列を編集する方法」を参照され度い。 セキュリティに関するメモ:情報は、アプリケーション構成ファイル内にプレーンテキストと仕て格納 される。機密情報への未承認アクセスの可能性を減らす為に、データを暗号化出来る。詳細に付いては、 「データの暗号化と復号化」を参照され度い。 ■ [コマンドの種類を選択する] データベースに対して実行するコマンドの種類を選択する。 [コマンドの種類を選択する] ページで、データベースからデータをフェッチするメソッドを次から選択 する。 ・[SQL ステートメントを使用する]:此のオプションを選択すると、データベースからデータを選択す るSQL ステートメントを入力出来る。 ・[新しいストアドプロシージャの作成]:此のオプションを選択し、指定した SELECT ステートメント に基づいてウィザードで新しいストアドプロシージャをデータベースに作成する。 ・[既存のストアドプロシージャを使用]:此のオプションを選択し、データベースに既に存在するスト アドプロシージャをTableAdapter の SELECT、INSERT、UPDATE、及び、DELETE の各コマン ドに割り当てる。 ■ [SQL ステートメントを使用する] 此処では、[SQL ステートメントを使用する] オプションを選択した場合に、TableAdapter 構成ウィザ ードを完了する方法に付いて説明する。 [SQL ステートメントの生成] ページでは、実行するとデータテーブルにデータが格納される SQL ステ ートメントを入力する。 メモ:此のウィザードを使用すると、SQL クエリを作成する為のビジュアルツールで有るクエリビルダ にアクセス出来る。此れを開くには、[クエリビルダ] をクリックする。 クエリビルダの使い方 クエリ、ビュー、インライン関数、又は、単一ステートメントストアドプロシージャをデザインする時 に使用するデザイナは、ダイアグラムペイン、抽出条件ペイン、SQL ペイン、及び、結果ペインで構成 されて居る。

(8)

・ダイアグラムペイン ダイアグラムペインには、データ接続で選択したテーブルやテーブル値オブジェクトが、グラフィカ ルに表示される。亦、テーブル間の結合リレーションシップも示される。ダイアグラムペインでは、 次の作業を行う事が出来る。 ・テーブルやテーブル値オブジェクトを追加・削除し、出力するデータ列を指定する。 ・テーブル間やテーブル値オブジェクト間の結合を作成・変更する。 ダイアグラムペインで内容を変更すると、抽出条件ペインと SQL ペインは、其の変更に合わせて更 新される。例えば、ダイアグラムペインのテーブルやテーブル値オブジェクトのウィンドウで出力す る列を選択した場合、クエリ・ビューデザイナは、抽出条件ペインとSQL ペインの SQL ステートメ ントに、其のデータ列を追加する。 ダイアグラムペインでは、各テーブルやテーブル値オブジェクトは、独立したウィンドウと仕て表示 される。各ウィンドウのタイトルバーに表示されるアイコンは、ウィンドウに表示されて居るオブジ ェクトの種類を示して居る。各アイコンの意味は次の通りで有る。 [テーブル]:ダイアグラムペインに追加出来るテーブルが一覧表示される。テーブルを追加するには、 テーブルを選択して [追加] をクリックする。複数のテーブルを一度に追加するには、其等のテーブ ルを選択して [追加] をクリックする。 [ビュー]:ダイアグラムペインに追加出来るビューが一覧表示される。ビューを追加するには、ビュ ーを選択して [追加] をクリックする。複数のビューを一度に追加するには、其等のビューを選択し て [追加] をクリックする。

(9)

[関数]:ダイアグラムペインに追加出来るユーザー定義関数が一覧表示される。関数を追加するには、 関数を選択して [追加] をクリックする。複数の関数を一度に追加するには、其等の関数を選択して [追加] をクリックする。 [ローカルテーブル]:データベースに属するクエリ以外のクエリで作成されたテーブルが一覧表示さ れる。 [シノニム]:ダイアグラムペインに追加出来るシノニムが一覧表示される。シノニムを追加するには、 シノニムを選択して [追加] をクリックする。複数のシノニムを一度に追加するには、其等のシノニ ムを選択して [追加] をクリックする。 アイコン オブジェクト型 テーブル クエリ、又は、ビュー リンクテーブル ユーザー定義関数 リンクビュー 各四角形には、テーブルやテーブル値オブジェクトのデータ列が表示される。列の名前の横に表示さ れるチェックボックスと記号は、其の列がクエリで何の様に使われるかを示して居る。ツールヒント には、列のデータ型やサイズ等の情報が表示される。 テーブルやテーブル値オブジェクトの四角形で使われるチェックボックスと記号は、次の表の通りで 有る。 記号 説明 データ列をクエリの結果セットに表示するか何うか(SELECT クエリ)、又は UPDATE、 INSERT FROM、MAKE TABLE、INSERT INTO の各クエリで使用するか何うかを指 定する。結果に列を追加するには、其の列のチェックボックスをオンにする。[* (総ての 列)] を選択すると、総てのデータ列が出力に表示される。 チェックボックスに表示されるアイコンは、作成するクエリの種類に依り変わる。 DELETE クエリを作成する時は、列を個別に選択する事は出来ない。 メモ:Oracle では、*演算子と個別の列名を組み合わせる事は出来ない。 クエリ結果の並替に使用される(ORDER BY 句の一部で有る)データ列を示す。並替順 序が昇順の場合はアイコンにA-Z と表示され、降順の場合は Z-A と表示される。 集計クエリで結果セットをグループ化する為に使用される(GROUP BY 句の一部で有る) データ列を示す。 クエリの検索条件に含まれる(WHERE 句や HAVING 句の一部で有る)データ列を示す。 データ列の内容が出力の時に集約される(SUM、AVG、又は、他の集計関数に含まれる) 事を示す。 クエリに結合が含まれる場合は、結合に関係するデータ列の間に結合の線が表示される。結合される データ列が表示されて居ない場合(テーブルやテーブル値オブジェクトのウィンドウが最小化されて 居る場合や、結合に式が含まれる場合等)、クエリ・ビューデザイナは、テーブルやテーブル値オブ ジェクトを表す四角形のタイトルバーに結合線を表示する。猶、結合条件毎に1 本の結合線が表示さ れる。 結合線の中央に表示されるアイコンの形は、テーブルやテーブル構造オブジェクトの結合方法を示し て居る。等号( = )以外の演算子が結合句で使われて居る場合は、其の演算子が結合線のアイコン に表示される。結合線に表示されるアイコンは、次の表の通りで有る。

(10)

結合線のアイコン 説明 内部結合(等号を使って作成) 大なり演算子( > )に依る内部結合(結合線アイコンの内部には、結合で使 われる演算子が表示される) 外部結合(右側のテーブルに一致する行が有るか何うかに拘らず、左側のテ ーブルの総ての行が含まれる) 外部結合(左側のテーブルに一致する行が有るか何うかに拘らず、右側のテ ーブルの総ての行が含まれる) 完全外部結合(関連テーブルに一致する行が有るか何うかに拘らず、両方の テーブルの総ての行が含まれる) ※ Oracle データベースは、完全外部結合をサポートして居ない。 結合線の端に表示されるアイコンは、結合の種類を示して居る。結合の種類と結合線の端に表示され るアイコンは、次の表の通りで有る。 結合線の端のアイコン 説明 一対一結合 一対多結合 クエリ・ビューデザイナは、結合の種類を特定出来ない。 ・抽出条件ペイン 抽出条件ペインでは、表示するデータ列、結果の順序、選択する行等のクエリオプションを選択して スプレッドシート形式のグリッドに入力する事に依り、クエリオプションを指定出来る。抽出条件ペ インでは次の内容を指定する事が出来る。 ・表示する列と列名のエイリアス ・列が属して居るテーブル ・計算が必要な列に対する式 ・クエリの並替順序 ・検索条件 ・グループ化の条件(サマリレポートで使用する集計関数等) ・UPDATE クエリ、又は、INSERT INTO クエリに対する新しい値 ・INSERT FROM クエリの挿入先の列名 抽出条件ペインで行った変更は、ダイアグラムペインとSQL ペインに自動的に反映される。同様に、 他のペインが変更されると、其の変更を反映して抽出条件ペインも自動的に更新される。 抽出条件ペインの行には、クエリで使われるデータ列が表示される。抽出条件ペインの列には、クエ リオプションが表示される。 抽出条件ペインに表示される具体的な情報は、作成して居るクエリの種類に依り異なる。SELECT クエリを作成して居る場合は、UPDATE クエリを作成して居る場合と異なる列が抽出条件ペインに 表示される。 抽出条件ペインのグリッドに表示される列は、次の表の通りで有る。

(11)

列 クエリの種類 説明 [列] 総て クエリに使われるデータ列の名前、又は、計算が必要な列の式が表示さ れる。水平にスクロールしても常に表示される様、此の列はロックされ て居る。 [エイリアス] SELECT、 INSERT FROM、 UPDATE、 MAKE TABLE 列に対する別名、又は、計算式の列で使用出来る名前を指定する。 [テーブル] SELECT、 INSERT FROM、 UPDATE、 MAKE TABLE 対応するデータ列のテーブルやテーブル構造オブジェクトの名前を指 定する。計算式の列の場合は空白で有る。 出力 SELECT、 INSERT FROM、 MAKE TABLE データ列をクエリの出力に表示するか何うかを指定する。 メモ:データベースが対応して居る場合は、データ列を結果セットに表 示せずに、並替や検索の句と仕て使用出来る。 [並べ替えの種類] SELECT、 INSERT FROM クエリ結果を並べ替える為に対応するデータ列を使用する事、及び、並 替が昇順で有るか降順で有るかを指定する。 [並べ替え順序] SELECT、 INSERT FROM 結果セットの並替に使用するデータ列の並替優先順位を指定する。デー タ列の並替順序を変更すると、他の総ての列の並替順序も其の変更に従 って更新される。 [グループ化] SELECT、 INSERT FROM、 MAKE TABLE 対応するデータ列を集計クエリの作成に使用する事を指定する。此のグ リッド列が表示されるのは、[クエリ] メニューの [グループ化] をクリ ックした場合、又は、[SQL] ペインに GROUP BY 句を追加した場合丈 で有る。 既定では、此の列の値は [グループ化] に設定されて居て、列は GROUP BY 句の中で使われる。 此の列のセルに移動し、対応するデータ列に適用する集計関数を選択す ると、既定では、結果と仕て作成される式が、結果セットの出力列と仕 て追加される。 [抽出条件] 総て 対応するデータ列に対する検索条件(フィルタ)を指定する。演算子(既 定では=)と検索する値を入力する。テキスト値は、単一引用符で囲む。 対応するデータ列が GROUP BY 句の一部で有る場合、入力した式は HAVING 句で使用される。 [抽出条件] グリッド列の複数のセルに値を入力した場合は、結果と仕て 生成される検索条件が自動的に論理AND で連結される。

1 つのデータベース列に複数の検索条件式(例えば(fname > 'A') AND (fname < 'M'))を指定するには、其のデータ列を抽出条件ペインに 2 回 入力し、データ列の各インスタンスの [抽出条件] グリッド列に異なる 値を入力する。 [又は...] 総て データ列に追加する検索条件式を指定する。指定した式は、前の式と論 理OR で連結される。右端の [又は...] 列で Tab キーを押すと、[又は...] グリッド列を追加出来る。

[追加] INSERT FROM 対応するデータ列の挿入先データ列の名前を指定する。INSERT FROM クエリを作成すると、クエリ・ビューデザイナは、挿入元データ列を適 切な挿入先データ列に一致させ様とする。一致するデータ列をクエリ・ ビューデザイナが選択出来ない場合は、列の名前を指定する必要が有 る。 [新しい値] UPDATE、 INSERT INTO 対応する列に格納する値を指定する。リテラル値か式を入力する。 ・SQL ペイン SQL ペインでは、任意の SQL ステートメントを作成出来る。抽出条件ペインやダイアグラムペイン でもSQL ステートメントを作成出来るが、孰れの場合も SQL ステートメントは、SQL ペインに作 成される。クエリを作成すると、SQL ペインは自動的に更新され、読み易い様に書式が変更される。 SQL ペインを開くには、先ずクエリ・ビューデザイナを開く。此れには、サーバーエクスプローラで データベースオブジェクトを選択し、[データ] メニューの [新しいクエリ] をクリックする。次に、[ク エリデザイナ] メニューの [ペイン] をポイントし、[SQL] をクリックする。

(12)

SQL ペインでは、次の作業を行う事が出来る。 ・SQL ステートメントを入力し、新しいクエリを作成する。 ・ダイアグラムペインや抽出条件ペインで行った設定に基づいてクエリ・ビューデザイナが作成した SQL ステートメントを変更する。 ・使用しているデータベース固有の機能を利用するステートメントを入力する。 SQL ペインでは、現在のクエリを直接編集出来る。他のペインに移動すると、クエリ・ビューデザイ ナは、ステートメントの書式を自動的に設定し、ステートメントに合わせてダイアグラムペインと抽 出条件ペインを変更する。 ダイアグラムペインや抽出条件ペインが表示されて居て、此等のペインでステートメントを表示出来 ない場合、クエリ・ビューデザイナはエラーを表示する。此の場合、次の孰れかを選択出来る。 ・ダイアグラムペインや抽出条件ペインでステートメントを表示出来なくても無視して作業を続ける。 ・表示出来ない変更を元に戻して、其の前に変更を加えた後のSQL ステートメントに戻す。 ダイアグラムペインや抽出条件ペインでステートメントを表示出来なくても無視して作業を続ける 事を選択した場合、此等のペインは、SQL ペインの内容を反映出来ない事を示す為、淡色表示される。 ステートメントの編集と実行は、他のSQL ステートメントと同じ様に実行出来る。 メモ:SQL ステートメントを入力した後に、ダイアグラムペインと抽出条件ペインでクエリを変更し た場合、クエリ・ビューデザイナは SQL ステートメントをリビルド、及び、再表示する。此の処理 の結果、最初に入力した SQL ステートメントとは異なるステートメントが作成される事が有る。但 し、ステートメントの実行結果は常に同じに成る。此の現象は、AND 又は OR で連結された複数の 句を含む検索条件が有る場合に良く発生する。 ・結果ペイン 結果ペインには、最後に実行された選択クエリの結果が表示される。他の種類のクエリ結果は、メッ セージボックスに表示される。結果ペインを表示するには、クエリやビューを表示・作成するか、テ ーブルのデータを返す。結果ペインが既定で表示されない場合は、[クエリデザイナ] メニューの [ペ イン] をポイントし、[結果] をクリックする。 結果ペインでは、次の作業を行う事が出来る。 ・最後に実行された選択クエリの結果セットを表形式で参照。 ・単一のテーブルやビューからのデータを表示するクエリやビューに付いて、結果セットに含まれる 各列の値の編集、新しい行の追加、既存の行の削除。 結果ペインには、次の制限が有る。 ・テーブル値関数から返された結果は、一部の場合に限り更新出来る。 ・複数のテーブルやビューの列を含むクエリやビューは更新出来ない。 ・ストアドプロシージャから返された結果は更新出来ない。 ・GROUP BY 句や DISTINCT 句を使用したクエリやビューは更新出来ない。 結果ペインの下端に有るナビゲーションバーを使用すると、レコード間を素早く移動出来る。 最初のレコードと最後のレコードに移動するボタンや、次のレコードと前のレコードに移動するボタ ン、特定のレコードに移動するボタンが有る。

(13)

特定のレコードに移動するには、ナビゲーションバー内のテキストボックスに行番号を入力し、Enter キーを押す。 クエリやビューの結果を操作して居ると、結果ペイン内のレコードがクエリ定義の同期化対象から外 れて仕舞う場合が有る。例えば、テーブル内の5 列の内 4 列に付いてクエリを実行し、ダイアグラム ペインを使用して5 番目の列をクエリの定義に追加した場合、其の 5 番目の列のデータは、結果ペイ ンに自動的に追加されない。結果ペインに新たなクエリ定義を反映するには、再度クエリを実行する。 此の現象が発生すると、結果ペインの右下隅に警告アイコンと『クエリが変更されました。』と謂う テキストが表示され、ペインの左上隅にも警告アイコンが表示される為、ユーザーに解る様に成って 居る。 何のペインでも、クエリやビューを作成出来る。例えば、表示する列を指定するには、ダイアグラムペ インの場合は、其の列を選択する。抽出条件ペインの場合は、其の列を入力する。SQL ペインの場合は、 其の列をSQL ステートメント内に記述する。 ■ [生成するメソッドの選択] 此のページには、データをフェッチして更新する為にウィザードで生成するTableAdapter のメソッド を選択するオプションが用意されて居る。 [DataTable にデータを格納する] データテーブルにデータを格納するTableAdapter の既定のメソッドを作成する。此のメソッドを呼 び出す際には、データテーブルの名前をパラメータと仕て渡す。 [メソッド名] ボックスの既定の名前を変更する事も出来る。 [DataTable を返す] データが読み込まれたデータテーブルを返すTableAdapter のメソッドを作成する。アプリケーショ ンに依っては、既存のデータテーブルにデータを読み込む方法に比べ、データが読み込まれたデータ テーブルを返す方法がより適して居る場合が有る。 [メソッド名] ボックスの既定の名前を変更する事も出来る。 [更新を直接データベースに送信する為のメソッドを作成する] 基に成るデータベースに変更内容を書き込む為に必要なINSERT、UPDATE、及び、DELETE の各 コマンドを作成する。此のボックスをオンにする事は、GenerateDBDirectMethods プロパティを true に設定する事に相当する。 メモ:元の SQL ステートメントに充分な情報が含まれて居ないか、クエリが更新可能なクエリではな い場合、此のオプションは使用出来ない。例えば、JOIN クエリや単一の値(スカラ)を返すクエリで、 此の様な状況が起こる。 ■ [新しいストアドプロシージャの作成] 此処では、[新しいストアドプロシージャの作成] オプションを選択する場合に、TableAdapter 構成ウ ィザードを完了する方法に付いて説明する。 1.[ストアドプロシージャの生成] ページで、データテーブルにデータを格納する SQL ステートメン トを入力する。此れが、TableAdapter の SELECT ステートメントに成り、データの選択、更新、

(14)

挿入、及び、削除を行うストアドプロシージャを作成する際の基礎にも成る。 メモ:此のウィザードを使用すると、SQL クエリを作成する為のビジュアルツールで有るクエリビ ルダにアクセス出来る。此れを開くには、[クエリビルダ] をクリックする。クエリビルダの使い方 の詳細に付いては、「クエリ、及び、ビューデザイナツール」を参照するか、此のダイアログボッ クスでF1 キーを押す。 2.[ストアドプロシージャの作成] ページで、次の操作を行う。 a.新しいストアドプロシージャの名前を入力する。 b.基に成るデータベースにストアドプロシージャを作成するか何うかを指定する。 メモ:データベースにストアドプロシージャを作成出来るか何うかは、夫々れのデータベースのセキュ リティ設定とアクセス許可に応じて決まる。例えば、データベースに新しいストアドプロシージャを作 成するアクセス許可を持って居ない場合は、作成するオプションを実行出来ない。 [ウィザードの結果] ページに、TableAdapter 作成の結果が表示される。ウィザードで問題が発生する と、此のページにエラー情報が表示される。 ■ [既存のストアドプロシージャを使用] 此処では、[既存のストアドプロシージャを使用] オプションを選択する場合に、TableAdapter 構成ウ ィザードを完了する方法に付いて説明する。 [コマンドを既存のストアドプロシージャにバインドする] TableAdapter の SELECT、INSERT、UPDATE、及び、DELETE の各コマンドで実行するストア ド プ ロ シ ー ジ ャ を 選 択 す る 。 此 等 の ス ト ア ド プ ロ シ ー ジ ャ は 、 関 連 付 け ら れ た メ ソ ッ ド が TableAdapter で呼び出されると実行される。例えば、UPDATE コマンドに割り当てられたストアド プロシージャは、TableAdapter.Update( ) メソッドが呼び出されると実行される。 選択したストアドプロシージャのパラメータを、データテーブルの対応する列に割り当てる。例えば、 テーブルの CompanyName 列に渡す @CompanyName と謂う名前のパラメータをストアドプロシー ジャが受け取る場合、@CompanyName パラメータの [ソース列] を CompanyName に設定する。 メモ: SELECT コマンドに割り当てられたストアドプロシージャは、ウィザードの次の手順で指定す るTableAdapter のメソッドを呼び出すと実行される。既定では Fill に成って居る為、SELECT プロシ ージャを実行する一般的なコードはTableAdapter.Fill(tableName) で有る。既定の Fill から変更する 場合は、Fill を割り当てる名前に置き換え、"TableAdapter" を TableAdapter の実際の名前(例えば、 CustomersTableAdapter)に置き換える。

■ [詳細オプション]

アダプタに対して SQL ステートメントやストアドプロシージャを作成する方法を制御出来る。データ ウィザードの孰れかで [SQL ステートメントの生成] ページの [詳細オプション] ボタンをクリックす る と 、 此 の ダ イ ア ロ グ ボックスが表示される。此のダイアログボックスのオプションは総て

(15)

CustomersTableAdapter.Update(DataTable) 等の更新プロシージャの一部と仕て呼び出されるステー トメントやプロシージャに関係する。 [INSERT、UPDATE、及び、DELETE ステートメントの生成] 此のオプションを選択すると、[SQL ステートメントの生成] ページで定義した SELECT ステートメ ントに基づいて、ウィザードが INSERT、UPDATE、及び、DELETE の各ステートメントの生成を 試みる。 此れをオンにすると、ウィザードでは、アダプタの UpdateCommand、InsertCommand、及び DeleteCommand の各オブジェクトに対する SQL ステートメントやストアドプロシージャが作成さ れる。生成されるステートメントやプロシージャの詳細に付いては、ウィザードのクエリの種類の選 択ペインで制御される。此のチェックボックスをオフにすると、ダイアログボックスの残りのオプシ ョンは使用出来なく成り、適用されない。 此のチェックボックスをオフにするのは、普通、次の様な場合で有る。 ・データソースからデータを読み取る為丈にアダプタを使い、書き込みには使用しない場合。此のチ ェックボックスをオフにすると、フォームやコンポーネントのコードが少なく成る。 ・ウィザードが終了した後、自分でコマンドを記述する場合。 チェックボックスをオフにし、UpdateCommand、InsertCommand、又は、DeleteCommand の各 オブジェクトに対するステートメントやストアドプロシージャを生成しない場合は、データアダプタ のUpdate メソッドを呼び出しても何も行われない。 [オプティミスティック同時実行制御] 此のオプションを選択すると、データテーブルに元の各レコードを読み込んだ後に此等のレコードが 変更された場合は検出する様にUPDATE ステートメントと DELETE ステートメントが変更される。 同時実行違反を検出すると、例外がスローされる。 オンにすると、ウィザードは、更新されて居るレコードの総ての列の値をデータベース内の対応する レコードと一致させるWHERE 句を含む SQL コマンドを生成する。 メモ:此のオプションは、[INSERT、UPDATE、及び、DELETE ステートメントの生成] チェック ボックスがオンに成って居る場合に丈使用出来る。 例えば、此のオプションを使って生成されるUPDATE ステートメントの構文は次の様に成る。 UPDATE Customers

SET CustomerID = ?, CompanyName = ?, Phone = ?

WHERE (CustomerID = ?) AND (CompanyName = ?) AND (Phone = ? OR ? IS NULL AND Phone IS NULL); 此のチェックボックスをオフにすると、構文は次の様に成る。

UPDATE Customers

SET CustomerID = ?, CompanyName = ?, Phone = ? WHERE (CustomerID = ?)

各列の値をチェックする事に依る影響と仕て、データセットを読み取った後で他のユーザーがレコー ドを変更した事に依り列が変更された場合、コマンドはエラーに成る。此のオプションを設定せず

(16)

WHERE 句が単純にレコードを特定する丈の場合は、其のレコードを更新すると、他のユーザーが行 った変更が警告無しにオーバーライドされる場合が有る。 データセット更新時の同時実行チェックの詳細に付いては、「ADO.NET に於けるデータ同時実行制 御の概要」を参照され度い。 [データテーブルの更新] 此のオプションを選択すると、INSERT ステートメントと UPDATE ステートメントを実行した後で、 テーブルのデータが最新の内容に更新される。

オンにすると、ウィザードは、夫々れのUpdate コマンドと Insert コマンドに対して Select ステー トメントを生成する。 メモ:此のオプションは、[INSERT、UPDATE、及び、DELETE ステートメントの生成] チェック ボックスがオンに成って居る場合に丈使用出来る。 Select ステートメントは、アダプタ内の対応するコマンドオブジェクトに追加されて、Update コマ ンドやInsert コマンドが終了した直後に実行される。Select ステートメントは、只 1 つのレコード、 詰まり、更新された許りのレコードの更新バージョンを返す様に構成される。 メモ:ステートメントをセミコロン( ; )で区切る事に依り、アダプタのコマンドオブジェクトの CommandText プロパティに複数のステートメントを追加出来る。 更新後のレコードを取得すると、其のレコードの更新された列の値がデータセットに書き込まれる。 次の列も対象に成る。 ・データベースが既定値を格納する列 ・自動インクリメントされる列 ・タイムスタンプ列 ・データベーストリガの結果に依って影響を受ける列 此のオプションを指定すると、更新の度に 2 つのステートメント(更新ステートメントと其の後の Select ステートメント)が実行されるので、データベース内の殆どのレコードが更新される場合は非 効率的で有る。此の場合は、総ての更新が行われた後で、単純にデータテーブル全体を一度に設定し 直すのが最も効率的で有る。 メモ:データテーブルの再表示は、SQL ステートメントのバッチ処理がサポートされたデータベース 而巳で使用出来る。例えば、Microsoft Access では、データテーブルの再表示は、他の操作を実行す るコマンドと同じコマンドで実行出来ない。 ■ 次の手順 ウィザードが完了すると、TableAdapter がデータセットに追加され、データセットデザイナで表示や 編集が出来る様に成る。ウィザード終了後に行う作業が幾つか有る。 ・TableAdapter を更に追加する。此のウィザードは 1 つの TableAdapter を作成する。複数のテーブル を含むデータセットを使用する場合は、通常、データセットに更にTableAdapter を追加する。 ・TableAdapter に他のクエリを追加する。詳細に付いては、「TableAdapter クエリを作成する方法」 を参照され度い。 ・[データソース] ウィンドウに此のデータセットを表示し、フォームに項目をドラッグしてデータバイ ンドコントロールを作成する。詳細に付いては、「データの表示の概要」を参照され度い。

(17)

■ TableAdapter を編集する方法 ■

TableAdapter のテーブルのスキーマ、及び、TableAdapter の関連データテーブルに値を格納する Fill メソッドを変更する場合は、TableAdapter を編集する。TableAdapter は、関連データテーブルのスキ ーマを定義するメインのFill メソッドで作成される。メインの Fill メソッドは、TableAdapter の元の 設定時に入力されたクエリやストアドプロシージャに基づいて居る。亦、此のメソッドは、データセッ トデザイナのデータテーブルの下に有る最初の(一番上の)メソッドで有る。 TableAdapter のメインの Fill メソッドに対する変更は、関連付けられたデータテーブルのスキーマに 反映される。例えば、メインのFill メソッド内のクエリから列を削除すると、関連付けられたデータテ ーブルからも列が削除される。亦、メインのFill メソッドから列を削除すると、TableAdapter の総て の追加クエリから列が削除される。 TableAdapter の編集には、データセットデザイナのTableAdapter 構成ウィザードを使用する。 メモ:TableAdapter 構成ウィザードの代わりに TableAdapter クエリの構成ウィザードが開く場合は、 元のTableAdapter やメインの Fill クエリではなく、TableAdapter の追加クエリの 1 つを選択して居 る可能性が有る。TableAdapter の追加クエリの編集に付いては、「TableAdapter クエリを編集する方 法」を参照され度い。 ■ TableAdapter を編集するには データセットデザイナでデータセットを開く。 1.編集するTableAdapter を選択する。 2.TableAdapter の名前を右クリックし、[構成] をクリックする。 TableAdapter 構成ウィザードが開き、TableAdapter の関連データテーブルに値を格納するクエリ やストアドプロシージャを変更出来る。 3.TableAdapter 構成ウィザードで必要な変更を入力する。

(18)

■ TableAdapter クエリを作成する方法 ■ TableAdapter クエリは、アプリケーションからデータベースに対して実行出来る SQL ステートメント やストアドプロシージャで有る。 1 つの TableAdapter に、アプリケーションで必要な数のクエリを追加出来る。TableAdapter クエリは TableAdapter のメソッドと仕て表される。市の値を表すパラメータを受け取る FillByCity と謂う名前 のクエリを作成したと仕て、其のクエリをTableAdapter に追加する。此れは、正しい型のパラメータ (此の場合は市の値を表す文字列)を引数と仕て受け取る、型指定されたメソッドと仕て追加される。 TableAdapter クエリは、オブジェクトのメソッドの場合と同様に呼び出す。例えば、以下のコードは、 FillByCity クエリを実行して、市の値が Seattle で有る顧客総てを Customers テーブルに格納する。

Visual Basic Dim cityValue As String = "Seattle"

CustomersTableAdapter.FillByCity(NorthwindDataSet.Customers, cityValue) C#

string cityValue = "Seattle";

customersTableAdapter.FillByCity(northwindDataSet.Customers, cityValue);

TableAdapter クエリは、データテーブルに値を設定したり(Fill クエリと FillBy クエリ)、クエリが返 すデータを読み込んだ新しいデータテーブルを返す事が出来る(GetData クエリと GetDataBy クエリ)。 TableAdapter クエリの構成ウィザードを実行すると、クエリを既存のTableAdapter に追加出来る。追 加するには、TableAdapter を右クリックし、[クエリの追加] をクリックする。 ■ データセットデザイナでのクエリの作成 データセットデザイナでTableAdapter にクエリを追加するには 1.データセットデザイナでデータセットを開く。 2.目的のTableAdapter を右クリックし、[クエリの追加] をクリックする。 又は ツールボックスの [データセット] タブからデザイナ上のテーブルに [Query] をドラッグする。 3.TableAdapter クエリの構成ウィザードが開く。 4.ウィザードが完了し、TableAdapter にクエリが追加される。 ■ Windows アプリケーションのフォームに於けるクエリの直接作成 フォーム上にTableAdapter のインスタンスが有る場合、[検索条件ビルダ] ダイアログボックスを使用 してクエリを追加出来る。此の場合、クエリに必要な入力パラメータを受け取る ToolStrip コントロー ル、及び、クエリを実行するボタンが、フォームに追加される。 [検索条件] ダイアログボックスを使用して TableAdapter にクエリを追加するには 1.コンポーネントトレイでTableAdapter を選択する。

(19)

2.TableAdapter のスマートタグをクリックし、[クエリの追加] をクリックする。 3.ダイアログボックスに必要な項目を入力すると、TableAdapter にクエリが追加される。詳細に付 いては、「[検索条件ビルダ] ダイアログボックス」を参照され度い。 [検索条件ビルダ] ダイアログボックス 此のダイアログボックスを完成すると、Windows アプリケーションの既存のデータバインドフォーム に新しいクエリ(通常はパラメータクエリ)が追加される。新しいクエリを指定のテーブルに追加した り、パラメータ値をフォームで入力する為のコントロールを追加する事も、此れに含まれる(クエリを 実行するボタンもフォームに追加される)。 パラメータクエリは、クエリ内の WHERE 句の条件を満たすデータを返す。例えば、顧客一覧をパラ メータ化して、顧客の一覧を返すSQL ステートメントの最後に WHERE City = @City を追加すると、 特定の都市の顧客而巳を表示出来る。WHERE 句には、クエリを実行する際に満たさなければ成らない 条件を定義する。SELECT * FROM Customers は Customers テーブル内の総てのレコードを返し SELECT * FROM Customers WHERE City = @City は City 列が@City パラメータの値に等しいレコ ード而巳を返す。適切なWHERE 句をクエリの最後に追加する。

一般的なWHERE 句を次に示す。

SELECT * FROM Employees WHERE CompanyName like @CompanyName

SELECT * FROM Employees WHERE (LastName = @Lname) and (FirstName = @Fname)

メモ:パラメータプレースホルダの構文は、データソースに依って異なる。此の例は、SQL Server デ ータソースのプレースホルダ(@paramname)を示して居る。System.Data.OleDb パラメータと System.Data.Odbc パ ラ メ ー タ の 代 わ り に 疑 問 符 ( ? ) プ レ ー ス ホ ル ダ を 使 う ( WHERE CompanyName like ?)。 此のダイアログボックスを表示するには、スマートタグの [クエリの追加] をクリックするか、[データ] メニューの [クエリの追加] をクリックする。 此のダイアログボックスを使用すると、次の操作を行う事が出来る。 ・検索機能をWindows アプリケーションの既存のデータバインドフォームに追加する。詳細に付いて は、「パラメータクエリをWindows アプリケーションのフォームに追加する方法」を参照され度い。 [データソーステーブルを選択して下さい] クエリを追加するテーブルをプロジェクトの利用可能なテーブルのドロップダウンリストから選択 する。 [データを読み込むパラメータ付きクエリを選択して下さい] 新規や既存のパラメータクエリを選択する。 [新しいクエリ名] 新しいパラメータクエリの名前を入力する。 [既存のクエリ名] 選択したデータソーステーブルに対して利用可能なクエリのドロップダウンリストからクエリを選 択する。

(20)

[クエリテキスト] ボタンがクリックされた時に実行するSQL ステートメントを入力する。 メモ:ウィザードには、SQL クエリを作成する為のビジュアルツールで有るクエリビルダが用意され て居る。 [クエリビルダ] SQL クエリを作成する為のビジュアルツールで有るクエリビルダが開く。詳細に付いては、「クエリ・ ビュー デザイナツール」を参照され度い。 パラメータクエリをWindows アプリケーションのフォームに追加する方法 パラメータクエリを実行すると、Windows アプリケーションのフォームに検索機能を追加出来る。パ ラメータクエリは、WHERE 句の条件を満たすデータを返す。[検索条件ビルダ] ダイアログボックス の設定を完了すると、クエリにパラメータが追加される。例えば、クエリをパラメータ化して、顧客の 一覧を返すSQL ステートメントの最後に WHERE City = @City を追加すると、特定の都市の顧客而巳 を表示出来る。詳細に付いては、「パラメータクエリ」を参照され度い。 [検索条件] ダイアログボックスの設定が完了すると、次の操作が行われる。 ・関連するTableAdapter にクエリが追加される。 ・ユーザーが必要なパラメータ値を指定する為のコントロールと、クエリを実行する為のボタンがフォ ームに追加される。 ・パラメータ値を設定してクエリを実行するコードが、ボタンのクリックイベントに追加される。 既存のデータバインドフォームにクエリを追加するには、下記の手順で行う。 1.Windows フォームデザイナでフォームを開く。 2.[データ] メニュー、又は、データスマートタグの [クエリの追加] をクリックする。 メモ:[データ] メニューの [クエリの追加] が利用出来ない場合は、フォーム上の、パラメータを 追 加 す る デ ー タ ソ ー ス が 表 示 さ れ て 居 る コ ン ト ロ ー ル を 選 択 す る 。 例 え ば 、 フ ォ ー ム で DataGridView コントロールにデータが表示されて居る場合は、其のコントロールを選択する。フ ォームの個々のコントロールにデータが表示されて居る場合は、任意のデータバインドコントロー ルを選択する。 3.[データソーステーブルを選択して下さい] 領域で、パラメータを追加するテーブルを選択する。詳 細に付いては、「[検索条件ビルダ] ダイアログボックス」を参照され度い。 4.新しいクエリを作成する場合は、[新しいクエリ名] ボックスに名前を入力する。 又は [既存のクエリ名] ボックスでクエリを選択する。 5.[クエリテキスト] ボックスに、パラメータを使用するクエリを入力する。 ヒント:クエリビルダは、クエリを作成する際に役立つ。詳細に付いては、「クエリ・ビュー デザ イナツール」を参照され度い。 6.[OK] をクリックする。 パラメータ入力用のコントロールと [読み込み] ボタンが、ToolStrip コントロールのフォームに追加さ れる。

(21)

■ TableAdapter クエリを編集する方法 ■ TableAdapter クエリの編集には、データセットデザイナの TableAdapter クエリの構成ウィザードを使 用する。TableAdapter クエリがアプリケーションの要件に合わなく成った場合は、其のクエリを変更 する必要が有る(又は、TableAdapter で別のクエリを作成出来る。新しいクエリの追加方法の詳細に 付いては、「TableAdapter クエリを作成する方法」を参照され度い)。 メモ:TableAdapter クエリの構成ウィザードの代わりにTableAdapter 構成ウィザードが開く場合は、 TableAdapter に追加したクエリではなく、TableAdapter のメインの Fill クエリを選択して居る可能性 が有る。TableAdapter のメインの Fill クエリの編集方法に付いては、「TableAdapter を編集する方法」 を参照され度い。 ■ TableAdapter クエリを編集するには 1.データセットデザイナでデータセットを開く。詳細に付いては、「データセットデザイナでデータ セットを開く方法」を参照され度い。 2.編集するTableAdapter クエリを選択する。 3.TableAdapter クエリを右クリックし、[構成] をクリックする。 TableAdapter クエリの構成ウィザードが開き、クエリや其のクエリのストアドプロシージャを変 更出来る。 4.TableAdapter クエリの構成ウィザードで必要な変更を入力する。詳細に付いては、「TableAdapter クエリの構成ウィザード」を参照され度い。

(22)

■ TableAdapter クエリの構成ウィザード ■ TableAdapter クエリの構成ウィザードを使用すると、TableAdapter に追加する他のクエリを作成して 編集出来る。TableAdapter クエリは、TableAdapter に関連付けられたデータテーブルと同じスキーマ に準拠したデータを返す(又は、スカラ値を返す)、任意の有効なSQL クエリやストアドプロシージャ で有る。ウィザードを完了すると、TableAdapter にメソッドが追加され、此のメソッドを呼び出すと クエリが実行される(例えば、CustomersTableAdapter.FillByCity(NorthwindDataSet.Customers, "Seattle"))。 ■ ウィザードの実行 クエリをデータセットデザイナにドラッグするか、又は、既存のクエリを構成する(最初のクエリの下 に有る任意のクエリ)。 TableAdapter の最初のクエリは、TableAdapter のメインクエリで有る。メインクエリを編集すると、 TableAdapter 構成ウィザードが開き、TableAdapter のデータテーブルのスキーマが編集される。メイ ンクエリの下に有る総てのクエリは追加のクエリで有り、TableAdapter クエリの構成ウィザードで設 定される。 新しいクエリに付いてTableAdapter クエリの構成ウィザードを起動するには 1.データセットデザイナでデータセットを開く。詳細に付いては、「データセットデザイナでデータ セットを開く方法」を参照され度い。 2.新しいクエリを作成する場合、ツールボックスの [データセット] タブから DataTable に Query オブジェクトをドラッグするか、TableAdapter のショートカットメニューの [クエリの追加] をク リックする。Query オブジェクトをデータセットデザイナの空の領域にドラッグする事も出来る。 此の場合は、DataTable が関連付けられて居ない TableAdapter が作成される。此の様なクエリの 動作は、単一の値(スカラ値)を返す事、又は、データベースに UPDATE、INSERT、DELETE の孰れかのコマンドを実行する事に限定される。詳細に付いては、「データセットにグローバルク エリを追加する方法」を参照され度い。 3.[データ接続の選択] ページで、クエリで使用する接続を選択、又は、作成する。 メモ:此のページは、何の接続を使用したら良いかデザイナが判別出来ない場合、又は、使用可能 な接続が無い場合而巳表示される。 4.[コマンドの種類を選択します] ページで、データベースからデータを取得する方法を次の中から選 択する。 ・[SQL ステートメントを使用する]:データベースからデータを選択するための SQL ステートメ ントを入力出来る。 ・[新しいストアドプロシージャの作成]:ウィザードを使用して、指定した SELECT ステートメン トに基づいてデータベース内にストアドプロシージャを新規作成するには、此のチェックボック スをオンにする。 ・[既存のストアドプロシージャを使用]:クエリの実行中に既存のストアドプロシージャを実行す るには、此のチェックボックスをオンにする。 既存のクエリに付いてTableAdapter クエリの構成ウィザードを起動するには ・既存のTableAdapter クエリを編集する場合、其のクエリを右クリックし、ショートカットメニュー の [構成] をクリックする。

(23)

メモ:TableAdapter のメインクエリを右クリックすると、TableAdapter と DataTable のスキーマが 再設定される。TableAdapter の追加クエリを右クリックすると、選択したクエリ丈が設定される。 TableAdapter 構成ウィザードでは、TableAdapter の定義を再設定出来るが、TableAdapter クエリの 構成ウィザードで再設定出来るのは、選択したクエリ丈で有る。 ■ データ接続の選択 接続の一覧から既存の接続を選択するか、[新しい接続] をクリックして [接続の追加] ダイアログボッ クスと [接続の変更] ダイアログボックス(一般)を開き、データベースへの接続を作成する。 [接続のプロパティ] ダイアログボックスへの入力を完了すると、[接続の詳細情報] 領域に、選択したプ ロバイダと接続文字列に関する読み取り専用の情報が表示される。 ■ アプリケーション構成ファイルへの接続文字列の格納 接続文字列をアプリケーション構成ファイルに格納するには、[次の名前で接続を保存する] をオンにす る。接続の名前を入力するか、予め入力されて居る既定の名前を使用する。 接続文字列をアプリケーション構成ファイルに保存すると、データベース接続の変更時のアプリケーシ ョンの保守プロセスが簡単に成る。データベース接続に変更が加えられた場合は、アプリケーション構 成ファイル内の接続文字列を編集出来る。此の方法を使うと、ソースコードを編集してアプリケーショ ンを再コンパイルする必要は無い。アプリケーション構成ファイル内の接続文字列を編集する方法に付 いては、「接続文字列を編集する方法」を参照され度い。 セキュリティに関するメモ:情報は、アプリケーション構成ファイル内にプレーンテキストと仕て格納 される。機密情報への未承認アクセスの可能性を減らす為に、データを暗号化出来る。詳細に付いては、 「データの暗号化と復号化」を参照され度い。 ■ [SQL ステートメントを使用する] 此処では、[SQL ステートメントを使用する] オプションを選択した場合に、TableAdapter クエリの構 成ウィザードを完了する方法に付いて説明する。 ■ [クエリの種類の選択] ウィザードでは、アプリケーションの要件に応じて幾つかの種類のクエリを作成する。データ(データ テーブル)の行を返すSELECT クエリか、又は、スカラ値(Count、Sum 等の単一の値)を返す SELECT クエリを選択出来る。

[クエリの種類の選択] ページでは、利用可能なクエリの一覧から、作成するクエリの種類を選択する。 メモ:INSERT、UPDATE、又は、DELETE の各ステートメントを作成しても、TableAdapter の Update メソッドを呼び出す時に使用するTableAdapter のコマンドは置き換えられない。例えば、クエリの種 類と仕てUPDATE を選択すると、此のウィザードの後半で指定する名前の新しいクエリが作成される。 TableAdapter の此の名前のメソッドを呼び出す事に依り、此のクエリを実行する。TableAdapter の Update メソッドを呼び出すと、元の TableAdapter を構成した時に作成したステートメントが実行さ れる。 ■ [SQL <クエリの種類> ステートメントの指定] [SQL <クエリの種類> ステートメントの指定] ページでは、クエリを呼び出した時に実行される SQL ステートメントを入力する。

参照

関連したドキュメント

事業セグメントごとの資本コスト(WACC)を算定するためには、BS を作成後、まず株

※ 硬化時 間につ いては 使用材 料によ って異 なるの で使用 材料の 特性を 十分熟 知する こと

Windows Hell は、指紋または顔認証を使って Windows 10 デバイスにアクセスできる、よ

備考 1.「処方」欄には、薬名、分量、用法及び用量を記載すること。

すべての Web ページで HTTPS でのアクセスを提供することが必要である。サーバー証 明書を使った HTTPS

口文字」は患者さんと介護者以外に道具など不要。家で も外 出先でもどんなときでも会話をするようにコミュニケー ションを

Office 365 のインストールが完了すると Word ・ Excel ・ PowerPoint ・ OneDrive などを使用出来ます。. Office

具体的な取組の 状況とその効果 に対する評価.