求助-函数内调用存储过程中的返回值如何取得
各位朋友,帮我看看下面的这个问题,我是想从分页过程中取得总记录和总页数,我定义了两个公共变量,在下面的函数中给其赋值,但是在调用过程中,两个变量的值始终为0,有没有办法把存储过程中的返回值取出来,在另一个地方用。
//分页专用执行方法
public class kk
{
public int TotalPage;
public int TotalCount;
public DataTable GetRecord(string sql, CommandType cmdType, params SqlParameter[] parameters)
{
SqlDataAdapter sda = new SqlDataAdapter(sql, conn);
sda.SelectCommand.CommandType = cmdType;
if (parameters != null)
{
foreach (SqlParameter p in parameters)
sda.SelectCommand.Parameters.Add(p);
}
Open();
DataTable dt = new DataTable();
sda.Fill(dt);
TotalCount = int.Parse(sda.SelectCommand.Parameters[0].Value.ToString());
TotalPage = int.Parse(sda.SelectCommand.Parameters[1].Value.ToString());
sda.SelectCommand.Parameters.Clear();
sda.Dispose();
Close();
return dt;
}
}
在需要调用的地方调用那两个变量值始是0,谢谢各位帮助
------解决方案--------------------使用out关键字写进方法的签名
------解决方案--------------------要在存储过程中输出的值,需要在存存过程中使用Output声明外,在C#中也要使用Output来声明才行,比如:
p.Direction=ParameterDirection.Output;
sda.SelectCommand.Parameters.Add(p);
不知道你是否是这样的。
------解决方案--------------------SqlDataAdapter sda = new SqlDataAdapter(sql, conn);
sda.SelectCommand.CommandType = cmdType;
if (parameters != null)
{
foreach (SqlParameter p in parameters)
sda.SelectCommand.Parameters.Add(p);
}
Open()