マニュアルによると、ExecuteScalar メソッドは次のように使用する必要があります。
public T ExecuteScalar<T>(
string commandText,
CommandType commandType,
params DbParameter[] parameters
)
しかし、そのパラメーターの配列を作成するにはどうすればよいでしょうか? ストアド プロシージャ 2 のパラメーターを指定する必要があります。
マニュアルによると、ExecuteScalar メソッドは次のように使用する必要があります。
public T ExecuteScalar<T>(
string commandText,
CommandType commandType,
params DbParameter[] parameters
)
しかし、そのパラメーターの配列を作成するにはどうすればよいでしょうか? ストアド プロシージャ 2 のパラメーターを指定する必要があります。
parameters
パラメータにはparams
キーワードがあります。つまり、配列を明示的に作成する必要はありませんが、可変数の引数をメソッドに渡すことができます。
x.ExecuteScalar(commandText, commandType, parameter1, parameter2);
ただし、必要に応じて、配列を明示的に作成し、次のようにメソッドに渡すことができます。
DbParameter[] parameters = new DbParameter[] { parameter1, parameter2 };
x.ExecuteScalar(commandText, commandType, parameters);
DbParameter は抽象クラスですが、派生型をインスタンス化できます。
Sql サーバーを使用している場合は、SqlParameter です。
DbParameter[] parameters = new DbParameter[2];
parameters[0] = new SqlParameter("param1", 123456);
parameters[1] = new SqlParameter("param2", "abcdef");
params キーワードは、さまざまな数のパラメーターを指定できることを意味します (つまり、1 から [ほぼ] 無限大まで)。
次のようにメソッドを呼び出すことができます。
ExecuteScalar<SomeType>("Command!", CommandType.SomeCommandType, dbParameter1, dbParameter2);