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

作者:编程家 分类: c++ 时间:2025-09-13

使用C#编程语言开发应用程序时,我们经常会与数据库进行交互,并且可能会使用存储过程来执行一些复杂的数据库操作。存储过程是一组预先编译的SQL语句,可以在数据库中存储和重复使用。在执行存储过程后,我们可能会对其返回的结果感兴趣,包括返回值、输出参数和结果集等。本文将介绍如何使用C#获取存储过程的返回值,并提供相应的示例代码。

如何获取存储过程的返回值

在C#中,我们可以使用SqlCommand对象来执行存储过程,并通过一些属性和方法来获取返回值。首先,我们需要创建一个SqlConnection对象来与数据库建立连接,并指定连接字符串。

csharp

string connectionString = "Data Source=服务器地址;Initial Catalog=数据库名称;User ID=用户名;Password=密码;";

SqlConnection connection = new SqlConnection(connectionString);

接下来,我们可以创建一个SqlCommand对象,并将存储过程的名称和连接对象作为参数传递给它的构造函数。

csharp

SqlCommand command = new SqlCommand("存储过程名称", connection);

command.CommandType = CommandType.StoredProcedure;

然后,我们可以通过添加输入参数和输出参数来设置存储过程的参数。对于存储过程的返回值,我们可以使用ReturnValue属性来获取它的值。

csharp

SqlParameter returnValue = command.Parameters.Add("ReturnValue", SqlDbType.Int);

returnValue.Direction = ParameterDirection.ReturnValue;

在执行存储过程之前,我们需要打开数据库连接。

csharp

connection.Open();

接下来,我们可以使用ExecuteNonQuery方法来执行存储过程,并获取返回值。

csharp

command.ExecuteNonQuery();

int returnValue = (int)command.Parameters["ReturnValue"].Value;

最后,我们需要关闭数据库连接。

csharp

connection.Close();

示例代码

下面是一个简单的示例代码,演示了如何获取存储过程的返回值。

csharp

using System;

using System.Data;

using System.Data.SqlClient;

namespace GetStoredProcedureReturnValue

{

class Program

{

static void Main(string[] args)

{

string connectionString = "Data Source=服务器地址;Initial Catalog=数据库名称;User ID=用户名;Password=密码;";

SqlConnection connection = new SqlConnection(connectionString);

try

{

SqlCommand command = new SqlCommand("存储过程名称", connection);

command.CommandType = CommandType.StoredProcedure;

SqlParameter returnValue = command.Parameters.Add("ReturnValue", SqlDbType.Int);

returnValue.Direction = ParameterDirection.ReturnValue;

connection.Open();

command.ExecuteNonQuery();

int returnValue = (int)command.Parameters["ReturnValue"].Value;

Console.WriteLine("存储过程的返回值为:" + returnValue);

}

catch (Exception ex)

{

Console.WriteLine("发生异常:" + ex.Message);

}

finally

{

connection.Close();

}

}

}

}

在上述示例代码中,我们首先创建了一个SqlConnection对象,并指定了连接字符串。然后,我们创建了一个SqlCommand对象,并设置了存储过程的名称和连接对象。接着,我们添加了一个输出参数来获取存储过程的返回值。在执行存储过程后,我们使用ReturnValue属性来获取返回值,并将其打印输出。

通过上述步骤,我们可以在C#中获取存储过程的返回值。使用SqlCommand对象和相关属性和方法,我们可以轻松地执行存储过程,并获取返回值。这对于开发需要与数据库进行交互的应用程序来说是非常有用的。