读书人

-函数内调用存储过程中的返回值怎么取

发布时间: 2012-03-02 14:40:28 作者: rapoo

求助-函数内调用存储过程中的返回值如何取得
各位朋友,帮我看看下面的这个问题,我是想从分页过程中取得总记录和总页数,我定义了两个公共变量,在下面的函数中给其赋值,但是在调用过程中,两个变量的值始终为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();


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());
return dt; //把这个方这儿试一下
sda.SelectCommand.Parameters.Clear();
sda.Dispose();
Close();

读书人网 >asp.net

热点推荐