当使用C#调用存储过程时,我们可以通过获取存储过程的返回值来判断该存储过程是否执行成功,例如返回0表示执行成功,而返回其他值则可能表示执行失败或者出现异常。
下面我们就来详细讲解如何通过C#获取存储过程的返回值。
示例一
在调用存储过程的时候,我们通过SqlCommand对象的ExecuteNonQuery()方法执行存储过程,该方法返回受影响的行数,而不是存储过程的返回值。因此,我们需要在SqlCommand对象执行ExecuteNonQuery()后,通过获取Output参数的值来获得存储过程的返回值。
using System.Data.SqlClient;
SqlConnection conn = new SqlConnection(connString);
SqlCommand cmd = new SqlCommand("procedure_name", conn);
cmd.CommandType = System.Data.CommandType.StoredProcedure;
SqlParameter outputPara = new SqlParameter("@output_para_name", System.Data.SqlDbType.Int);
outputPara.Direction = System.Data.ParameterDirection.Output;
cmd.Parameters.Add(outputPara);
conn.Open();
cmd.ExecuteNonQuery();
conn.Close();
//获取存储过程的返回值
int returnValue = Convert.ToInt32(outputPara.Value);
在以上示例中,我们首先定义一个SqlCommand对象,并指定存储过程的名称以及连接对象。然后定义一个SqlParameter对象,用于获取存储过程的返回值,该对象的Direction属性被设为Output,表示获取输出参数。接着,在SqlCommand对象中添加该SqlParameter对象,并执行ExecuteNonQuery方法。
最后,通过outputPara对象的Value属性获取存储过程的返回值,并将其转换为整数类型。
示例二
除了使用Output参数获取存储过程的返回值外,我们还可以使用ExecuteScalar方法获取存储过程的返回值。该方法返回的是结果集中的第一行第一列的值,也就是存储过程的返回值。
using System.Data.SqlClient;
SqlConnection conn = new SqlConnection(connString);
SqlCommand cmd = new SqlCommand("procedure_name", conn);
cmd.CommandType = System.Data.CommandType.StoredProcedure;
conn.Open();
//获取存储过程的返回值
int returnValue = (int)cmd.ExecuteScalar();
conn.Close();
在以上示例中,我们同样是定义一个SqlCommand对象,并指定存储过程的名称以及连接对象。不同的是,在执行ExecuteScalar方法后,返回的结果是存储过程的返回值。
注意:在使用ExecuteScalar方法获取存储过程的返回值时,存储过程的执行语句中必须包含“SELECT @returnValue”的语句。
通过以上两个示例,我们可以清楚地了解到如何使用C#获取存储过程的返回值。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:c#获取存储过程返回值示例分享 - Python技术站