InitPhoneAdapter : パート 1
InitPhoneAdapter メソッドは、phoneAdapter という名前で CacheDataAdapter オブジェクトを作成します。このアダプタは、データ・セットを Provider.PhoneNumber テーブルに接続します。以下に示すこのメソッドの最初の部分は、次のように動作します。
-
phoneAdapter によってサポートされる SQL コマンドを定義する SQL 文字列を作成します。ただし、挿入は、Provider.PhoneNumber で定義されているストアド・プロシージャによって処理されます。storedproc 変数には、そのストアド・プロシージャへの呼び出しを定義する文字列を指定します。
-
CacheDataAdapter インスタンスを作成します。このアダプタは、SQL の SELECT と CacheConnection インスタンスが含まれた文字列で初期化されます。
-
アダプタの Insert コマンドを作成します。
-
AddInputParams ヘルパー・メソッドを使用して、入力パラメータをアダプタの Insert コマンドに追加します。
-
output パラメータを作成し、それを Insert コマンドに追加します。このパラメータは、Provider.PhoneNumber の ID を表します。ストアド・プロシージャでは、列の値は出力パラメータとして処理されます。
このメソッドの本文を、PhoneForm.cs の InitPhoneAdapter スタブに追加します。
private void InitPhoneAdapter()
{
string selectSQL = "Select Contact, %ID, Number, PhoneNumberType " +
"from Provider.PhoneNumber";
string updateSQL = "Update Provider.PhoneNumber Set Number = ?, " +
"PhoneNumberType = ? Where ID = ?";
string storedProc = "{call Provider.PhoneNumber_InsertData(?,?,?)}";
string deleteSQL = "Delete from Provider.PhoneNumber Where ID = ?";
phoneAdapter = new CacheDataAdapter(selectSQL, cnCache);
//Create InsertCommand using stored procedure
phoneAdapter.InsertCommand = cnCache.CreateCommand();
phoneAdapter.InsertCommand.CommandText = storedProc;
//Add input parameters for InsertCommand
AddInputParams(phoneAdapter.InsertCommand, "Number", "PhoneNumberType",
"Contact");
//Add output parameter - the row id - for the InsertCommand
CacheParameter Id = phoneAdapter.InsertCommand.CreateParameter();
Id.ParameterName = "ID";
Id.CacheDbType = CacheDbType.NVarChar;
Id.Direction = ParameterDirection.Output;
Id.SourceColumn = "ID";
phoneAdapter.InsertCommand.Parameters.Add(Id);
...