ADO.NETプレースホルダーについて
以下は、プレースホルダーを使用するパラメーターを持つサンプルSQLステートメントです。
delete from products where ProductID=@ProductID
この例では、@ProductIDはプレースホルダー引数名であり、@と?文字はプレースホルダーです。 ?を使用する推奨されます。)引数名は空であってはなりません。
SQLステートメントがプリペアドステートメントの場合は、@ProductIDをパラメーターオブジェクトにバインドする必要があります。このオブジェクトには、引数の名前、値、およびタイプが含まれています。 ADO.NETは、これらの値をサーバーに送信して、結果にアクセスできます。
パラメータの使用についてのメソッドAから、準備されたSQLステートメントがcmd.CommandTextとして使用されました。
cmd.CommandText = "delete from products where ProductID=@ProductID";
次の方法でプレースホルダーをバインドできます。
cmd.Parameters.Add("@ProductID", CompositeDbType.INTEGER);
cmd.ParametersはCompositeParameterCollectionのオブジェクトであり、すべてのCompositeCommandオブジェクトには、すべてのプレースホルダーにバインドされたすべてのパラメーターを含むcmd.Parametersオブジェクトがあります。
代わりに、cmd.Parameters.Addメソッドを使用して、プレースホルダーとパラメーターオブジェクトをバインドできます。 @ProductIDプレースホルダーにパラメーターオブジェクトを追加し、そのタイプをCompositeDbType.INTEGERとして定義するには、次のようなパラメーターの値が必要です。
cmd.Parameters[0].Value = 1111;
cmd.Parameters[0]は、値が1111の最初のパラメーターオブジェクトを参照します。