如何获取存储过程返回的语句?

来源:百度知道 编辑:UC知道 时间:2024/06/08 21:52:14
现在,我在页面后台设置了一条调用一个叫Pro_Login的存储过程的SQL语句:
string sql = "
declare @err nvarchar(15)
exec Pro_Login @err output,'haha','999'
print @err";
我们可以看到里面有一个输出参数@err
我的目的就是要得到它的值
于是我把SQL语句调入查询单个值的类:
public object ExecuteScalar(string sql)
{
using (SqlConnection con = new SqlConnection(ConnectionString))
{
con.Open();
SqlCommand cmd = new SqlCommand(sql, con);
object r = cmd.ExecuteScalar();
con.Close();
return r;
}
}
返回的object r压根就是null,我就郁闷了,所以请教以下各位怎样才可以得到存储过程返回的@err,谢谢~

exec Pro_Login @return output,'haha','999'
return @return;

com.Parameters.Add(new SqlParameter("@return", SqlDbType.Int));
com.Parameters["@return"].Direction = ParameterDirection.ReturnValue;
object r = com.Parameters["@return"].Value;

你这个存储过程只是打印出来了这个字符串,并没有返回值啊,存储过程中的返回值不是也要用output声明的么?

如果要返回对象,用cmd.ExecuteReader()之类的
用SqlDataReader接收,再取出数据赋值给对象