我有一个SQL Server Stored Procedure
. 这个过程有一个输出参数。在我的C#.NET
应用程序中,我通过执行此过程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