C#调用存储过程获取返回值与输出参数

2星 需积分: 10 6 下载量 159 浏览量 更新于2024-10-07 收藏 29KB DOC 举报
"这篇文章主要介绍了如何在C#中获取存储过程的返回参数值,包括返回值(Return)和输出参数值(Output)。" 在C#编程中,与数据库交互时经常会使用存储过程来执行一系列的SQL操作。存储过程可以有返回值以及输出参数,这些值在调用存储过程后可以通过C#代码获取。以下是如何实现这一功能的详细步骤: 1. 获取存储过程的Return返回值 存储过程的返回值通常是通过`RETURN`语句设置的,它可以在存储过程中计算并返回一个整数值。在C#中,我们可以通过创建一个`SqlParameter`对象,并将其`Direction`属性设置为`ParameterDirection.ReturnValue`来捕获这个值。 示例代码如下: ```csharp // 创建数据库连接 SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["LocalSqlServer"].ToString()); conn.Open(); // 创建SqlCommand对象,指定存储过程名称 SqlCommand myCommand = new SqlCommand("MYSQL", conn); myCommand.CommandType = CommandType.StoredProcedure; // 添加输入参数 myCommand.Parameters.Add(new SqlParameter("@a", SqlDbType.Int)); myCommand.Parameters["@a"].Value = 10; myCommand.Parameters.Add(new SqlParameter("@b", SqlDbType.Int)); myCommand.Parameters["@b"].Value = 20; // 添加返回值参数,方向设置为ReturnValue myCommand.Parameters.Add(new SqlParameter("@return", SqlDbType.Int)); myCommand.Parameters["@return"].Direction = ParameterDirection.ReturnValue; // 执行存储过程 myCommand.ExecuteNonQuery(); // 获取并显示返回值 Response.Write(myCommand.Parameters["@return"].Value.ToString()); ``` 在这个示例中,存储过程`MYSQL`接收两个输入参数`@a`和`@b`,并计算它们的和作为返回值。`ExecuteNonQuery()`方法执行存储过程,然后我们可以通过`myCommand.Parameters["@return"].Value`获取到返回值。 2. 获取Output输出参数值 输出参数允许存储过程将数据传递回调用者,而不会影响返回值。在C#中,我们需要创建一个`SqlParameter`对象,将其`Direction`属性设置为`ParameterDirection.Output`。 示例代码如下: ```csharp // 创建数据库连接和SqlCommand对象,与前例相同 // 添加输入参数 myCommand.Parameters.Add(new SqlParameter("@a", SqlDbType.Int)); myCommand.Parameters["@a"].Value = 10; myCommand.Parameters.Add(new SqlParameter("@b", SqlDbType.Int)); myCommand.Parameters["@b"].Value = 20; // 添加输出参数,方向设置为Output myCommand.Parameters.Add(new SqlParameter("@c", SqlDbType.Int)); myCommand.Parameters["@c"].Direction = ParameterDirection.Output; // 执行存储过程 myCommand.ExecuteNonQuery(); // 获取并显示输出参数值 Response.Write("Output parameter value: " + myCommand.Parameters["@c"].Value.ToString()); ``` 在这个例子中,存储过程`MYSQL`接收两个输入参数`@a`和`@b`,并将它们的和赋值给输出参数`@c`。执行存储过程后,我们可以通过`myCommand.Parameters["@c"].Value`获取到输出参数的值。 总结来说,C#中获取存储过程的返回参数值和输出参数值,关键在于正确地添加`SqlParameter`对象并设置其方向。对于返回值,需要使用`ParameterDirection.ReturnValue`;对于输出参数,则使用`ParameterDirection.Output`。执行存储过程后,通过访问`SqlParameter`对象的`Value`属性即可获取到相应的值。