使用c#从存储过程中获取返回代码

时间:2015-06-15 19:29:32

标签: c# sql sql-server

我有一个需要验证的存储过程的返回码。我无法更改proc,因为它是供应商包的一部分。无法将其更改为输出参数。我不太关心在c#中捕获返回代码的参数。这是我尝试做的一个例子: 过程:

create proc tester
   @parm nvarchar(3)
as

if @parm = 'Yes'
       return 1
else
       return -1
go

C#示例代码:

SqlConnection sqlMon = new SqlConnection("Whatever");

sqlMon.Open();
SqlCommand sqlcomm = new SqlCommand("tester", sqlMon);
SqlDataReader sqlR; 
sqlcomm.CommandType = CommandType.StoredProcedure;
sqlcomm.Parameters.Add(new SqlParameter("@parm", "Yes"));

sqlR = sqlcomm.ExecuteReader();

sqlMon.Close();

我能弄清楚的是我现在如何获得返回码。您可以提供的任何帮助表示赞赏。谢谢。

2 个答案:

答案 0 :(得分:2)

您可以添加新参数,如下所示。

    SqlParameter ret = sqlcomm.Parameters.Add("@R", SqlDbType.Int);
    ret.Direction = ParameterDirection.ReturnValue;
    string returnvalue = (string)sqlcomm.Parameters["@R"].Value;

答案 1 :(得分:0)

ExecuteReader()返回SqlDataReader

SqlDataReader dr = sqlComm.ExecuteReader();

然后,您可以使用SqlDataReader将数据绑定到控件或其他任何您想要执行的操作。

https://msdn.microsoft.com/en-us/library/9kcbe65k(v=vs.110).aspx

以下是如何将DataReader绑定到GridView

的示例

Binding sqldatareader to gridview c#