私は持っていSQL Server Stored Procedure
ます。このプロシージャには出力パラメータがあります。私のC#.NET
Appliaction では、このプロシージャを経由SqlHelper.ExecuteDataSet()
して実行すると、クエリの結果が返されますDataSet
。を使用しているときに、ストアド プロシージャ プロシージャから出力パラメータを取得するにはどうすればよいですかSqlHelper.ExecuteDataSet()
。一部の記事では、使用する必要があると書かれていましSqlHelper.ExecuteNonQuery()
たが、それも必要DataSet
です。
これは私のコードです:
public DataSet GetDataPerTable(string spName, string a, string b, out int c)
{
try
{
c = 0;
SqlParameter[] spParameter = new SqlParameter[3];
spParameter[0] = new SqlParameter("@a", SqlDbType.Char, 4);
spParameter[0].Direction = ParameterDirection.Input;
spParameter[0].Value = a;
spParameter[1] = new SqlParameter("@b", SqlDbType.Char, 1);
spParameter[1].Direction = ParameterDirection.Input;
spParameter[1].Value = b;
spParameter[2] = new SqlParameter("@c", SqlDbType.Int);
spParameter[2].Direction = ParameterDirection.ReturnValue;
c = Convert.ToInt32(spParameter[2].Value);
return SqlHelper.ExecuteDataset(Configuration.MyConnectionString, CommandType.StoredProcedure, spName, spParameter);
}
catch (Exception ex)
{
throw ex;
}
}
私のc
変数は常に 0 を返します。前もって感謝します :)
私の手順は次のようなものです:
CREATE PROCEDURE [dbo].SPR_MyProcedure (@a Char(4), @bChar(1), @c Int Output)
SELECT *
FROM MyTable
Set @c = 1