クライアントインターフェイスガイド > ADO.NET経由でのTDVサーバーへの接続 > ADO.NETドライバーをテストするためのサンプルコード > パラメーターの使用について
 
パラメータの使用について
次のサンプルコードの構成メソッドは、CompositeParameter用です。次のメソッドを使用して、新しいパラメータを作成できます。
public CompositeParameter(string parameterName, object value)
public CompositeParameter(string parameterName, object value, CompositeDbType dbType)
public CompositeParameter(string parameterName, CompositeDbType dbType)
 
現在の引数名はparameterNameです。これは空であってはなりません。
現在のargumentvalueの値。
現在のパラメータに割り当てるタイプはdbTypeです。 dbTypeの値は、CompositeDbTypeオブジェクトの1つである必要があります。
パラメータを追加する方法
CompositeParameterCollectionオブジェクトにパラメーターを追加する方法はいくつかあります。次のサンプルでは、メソッドAは準備されたSQLステートメントをcmd.CommandTextとして使用します。方法Bは、プレースホルダーとパラメーターのバインドを示しています。このメソッドは、Clob、Date、Time、およびTimestampのデータタイプを操作する場合を除いて使用できます。
((CompositeParameterCollection)cmd.Parameters).Add("@ProductID", 1111);
 
cmd.ParametersオブジェクトをCompositeParameterCollectionタイプに変換します。 Addメソッドを変換して新しいパラメーター名を宣言した後:
'public CompositeParameter Add(string parameterName, object value)'
 
メソッドCは、次のJDBCスタイルのSQLステートメントを使用します。
update products set ProductName=? where ProductID=?
 
疑問符(?)は、名前文字列が追加されていないプレースホルダーです。プレースホルダーは、次のように対応するパラメーターにバインドされます。
cmd.Parameters.Add(new CompositeParameter("?ProductName", "TDV"));
cmd.Parameters.Add(new CompositeParameter("?ProductID", 1111));
 
パブリックCompositeParameterAdd(CompositeParameter value)メソッドは、パラメーターを追加するために使用されます。最初のパラメーターは最初のプレースホルダーにバインドされ、最後のパラメーターは最後のプレースホルダーにバインドされます。
次のサンプルコードには、パラメータを実装するための4つの可能な方法(AからD)が含まれています。サンプルでは、?のADO.NETプレースホルダー文字を使用しています。と @。
public void TestParameter()
{
CompositeConnection conn = GetConnection();
try
{
//Method A
CompositeCommand cmd = conn.CreateCommand();
cmd.CommandText = "delete from products where ProductID=@ProductID";
cmd.Parameters.Add("@ProductID", CompositeDbType.INTEGER);
cmd.Parameters[0].Value = 1111;
int cnt = cmd.ExecuteNonQuery();
//Method B
cmd.Parameters.Clear();
cmd = new CompositeCommand("insert into products(ProductID,ProductName) values(@ProductID,@ProductName)", conn);
((CompositeParameterCollection)cmd.Parameters).Add("@ProductID", 1111);
((CompositeParameterCollection)cmd.Parameters).Add("@ProductName", "Discovery");
cnt = cmd.ExecuteNonQuery();
//Method C
cmd.Parameters.Clear();
cmd.CommandText = "update products set ProductName=? where ProductID=?";
cmd.Parameters.Add(new CompositeParameter("?ProductName", "TDV"));
cmd.Parameters.Add(new CompositeParameter("?ProductID", 1111));
cnt = cmd.ExecuteNonQuery();
//Method D
cmd.Parameters.Clear();
cmd.CommandText = "select ProductName from products where ProductID=?ProductID";
cmd.Parameters.Add(new CompositeParameter("?ProductID", 1111));
String ProductName = (String)cmd.ExecuteScalar();
if (!ProductName.Equals("TDV"))
Console.WriteLine("error happen.");
}
catch (Exception ex)
{
throw ex;
}
}