GetReader を使用して呼び出す 2 つのレコードセットを返すストアド プロシージャがあります。最初を繰り返し、IDataReader.NextResult() を呼び出し、次に 2 番目を繰り返します。
sp の出力パラメーターに値を割り当てますが、リーダーで終了した後に値を確認すると、出力パラメーターは null です。バグのように見えます。私はファッジが好きではないので、選択を使用したくありません。いくつかのスニペット...
...
sp.Command.AddParameter("@SelectedTabID", selectedTabID, DbType.Int32);
sp.Command.AddParameter("@CurrentTabID", 0, DbType.Int32, ParameterDirection.Output);
sp.Command.AddParameter("@TypeID", 0, DbType.Int32, ParameterDirection.Output);
(この方法または AddOutputParameter() を使用しても同じ結果が得られることに注意してください)
...
using(IDataReader reader = sp.GetReader())
{
while (reader.Read()) {...}
if (reader.NextResult()) {while (reader.Read()) {...}}
}
...
int one = (int)sp.OutputValues[0]; //null expected an int
int two = (int)sp.OutputValues[1]; //null expected an int
いくつかの知恵の宝石を楽しみにしています:)