关于在 Asp.net 获得存储过程的多返回值问题?

来源:百度知道 编辑:UC知道 时间:2024/06/21 23:33:50
我有一个这样的存储过程,如下
create proc dbo.GetData
as
begin
declare @count smallint
select * from dbo.Test
select @count = COUNT(*) from dbo.Test
return @count
end

我想通过 ADO.NET 技术既得到表中的数据,又得到 return 语句的返回值,我该怎么做,给个例子。
connectionString = Data Source=Sunpy-PC;Initial Catalog=Test;Integrated Security=True;

回答好的再加分.
按照 7361893 的做法,需要查询数据库两次才能达到目标,有没有只需要查询一次就可以完成的。

可以把数据存储到DataSet或者DataTable中,再进一步处理就行了,也可以用DataReader一行一行的获取啦;获得返回值也是很容易的,设置参数的方向就行了,我给写段代码吧。
先是获取返回值的:
SqlConnection dbconn = new SqlConnection(connStr);
SqlCommand cmd = new SqlCommand("GetData", dbconn);
cmd.CommandType = CommandType.StoredProcedure;

SqlParameter rtnval = cmd.Parameters.Add("count", SqlDbType.Int);
rtnval.Direction = ParameterDirection.ReturnValue;

dbconn.Open();
//cmd.ExecuteNonQuery();
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
da.Fill(ds);//数据放在DataSet中
//如果是绑定到gridview上
GridView1.DataSource = ds.Tables[0].DefaultView;
GridView1.DataBind;
int tmp = (int)rtnval.Value;//rtnval.Value即为返回值
dbconn.Close();
这样不就成了,cmd.ExecuteNonQuery();这个可以不需要的嘛。

三种方法
1.使用output参数
2.返回值
SqlParameter r = cmd.