C#获取存储过程的返回参数值

在C#中,与数据库交互时,我们常常需要调用存储过程来执行特定的数据库操作。存储过程可以有返回值(Return Value)以及输出参数(Output Parameter),它们可以帮助我们传递和获取数据。以下是如何在C#中获取这两种类型参数的详细步骤。 1.获取Return返回值存储过程的返回值通常用来表示操作的状态或计算结果。在C#中,我们可以使用`SqlParameter`对象的`Direction`属性设置为`ParameterDirection.ReturnValue`来捕获这个返回值。以下是一个示例: ```csharp using System.Data.SqlClient; //创建并执行存储过程using (SqlConnection conn = new SqlConnection("连接字符串")) { conn.Open(); using (SqlCommand MyCommand = new SqlCommand("MYSQL", conn)) { MyCommand.CommandType = CommandType.StoredProcedure; //添加输入参数MyCommand.Parameters.Add(new SqlParameter("@a", SqlDbType.Int)).Value = 10; MyCommand.Parameters.Add(new SqlParameter("@b", SqlDbType.Int)).Value = 20; //添加返回值参数,注意Direction设置MyCommand.Parameters.Add(new SqlParameter("@return", SqlDbType.Int)).Direction = ParameterDirection.ReturnValue; //执行存储过程MyCommand.ExecuteNonQuery(); //获取并显示返回值Console.WriteLine($"Return Value: {MyCommand.Parameters["@return"].Value}"); } } ```在这个例子中,存储过程`MYSQL`计算两个输入参数的和,并将其作为返回值返回。 2.获取Output输出参数值输出参数允许我们在调用存储过程后获取其内部计算的结果。同样,我们需要创建一个`SqlParameter`,但这次将其`Direction`设置为`ParameterDirection.Output`。下面是如何做到这一点: ```csharp using System.Data.SqlClient; //创建并执行存储过程using (SqlConnection conn = new SqlConnection("连接字符串")) { conn.Open(); using (SqlCommand MyCommand = new SqlCommand("MYSQL", conn)) { MyCommand.CommandType = CommandType.StoredProcedure; //添加输入参数MyCommand.Parameters.Add(new SqlParameter("@a", SqlDbType.Int)).Value = 20; MyCommand.Parameters.Add(new SqlParameter("@b", SqlDbType.Int)).Value = 30; //添加输出参数MyCommand.Parameters.Add(new SqlParameter("@c", SqlDbType.Int)).Direction = ParameterDirection.Output; //执行存储过程MyCommand.ExecuteNonQuery(); //获取并显示输出参数的值Console.WriteLine($"Output Value: {MyCommand.Parameters["@c"].Value}"); } } ```在这个示例中,存储过程`MYSQL`将两个输入参数相加并将结果保存到输出参数`@c`中。需要注意的是,`ExecuteNonQuery()`方法用于执行不返回结果集的命令,例如存储过程。如果你的存储过程返回结果集,你应该使用`ExecuteReader()`或`ExecuteScalar()`方法。此外,确保正确配置你的数据库连接字符串,例如`LocalSqlServer`,它通常在应用程序的配置文件(如`app.config`或`web.config`)中定义。在实际开发中,你可能需要处理异常,例如`SqlException`,以确保程序的健壮性。同时,为了提高性能,推荐使用`using`语句块管理数据库连接,这样可以确保在操作完成后自动关闭和释放资源。
doc 文件大小:29KB