当前位置:首页 > 行业动态 > 正文

如何用C简单完整地调用存储过程?

当然,以下是一个简单的 C# 调用存储过程的示例代码:,,“ csharp,using System;,using System.Data;,using System.Data.SqlClient;,,class Program,{, static void Main(), {, string connectionString = "your_connection_string";, using (SqlConnection connection = new SqlConnection(connectionString)), {, connection.Open();, , using (SqlCommand command = new SqlCommand("YourStoredProcedureName", connection)), {, command.CommandType = CommandType.StoredProcedure;, , // 添加参数(如果有), command.Parameters.Add(new SqlParameter("@Param1", SqlDbType.Int)).Value = 123;, , // 执行存储过程, using (SqlDataReader reader = command.ExecuteReader()), {, while (reader.Read()), {, Console.WriteLine(reader["ColumnName"].ToString());, }, }, }, }, },},` ,,请将 “your_connection_string” 替换为实际的数据库连接字符串,并将 “YourStoredProcedureName”` 和参数名称、类型等替换为实际的存储过程名称和参数。

在C#中调用存储过程是一个常见的操作,通常用于执行数据库中的复杂查询或更新,下面我将提供一个简单但完整的实例代码,展示如何在C#中调用存储过程。

如何用C简单完整地调用存储过程?  第1张

创建数据库和存储过程

我们需要创建一个数据库和一个存储过程,假设我们使用的是SQL Server数据库。

-创建示例数据库
CREATE DATABASE SampleDB;
GO
-使用示例数据库
USE SampleDB;
GO
-创建示例表
CREATE TABLE Employees (
    EmployeeID INT PRIMARY KEY,
    FirstName NVARCHAR(50),
    LastName NVARCHAR(50),
    Department NVARCHAR(50)
);
GO
-插入一些示例数据
INSERT INTO Employees (EmployeeID, FirstName, LastName, Department) VALUES (1, 'John', 'Doe', 'HR');
INSERT INTO Employees (EmployeeID, FirstName, LastName, Department) VALUES (2, 'Jane', 'Smith', 'IT');
GO
-创建存储过程
CREATE PROCEDURE GetEmployeeByID
    @EmployeeID INT
AS
BEGIN
    SELECT * FROM Employees WHERE EmployeeID = @EmployeeID;
END
GO

C# 代码调用存储过程

我们在C#中编写代码来调用这个存储过程。

using System;
using System.Data.SqlClient;
namespace StoredProcedureExample
{
    class Program
    {
        static void Main(string[] args)
        {
            // 数据库连接字符串
            string connectionString = "Server=localhost;Database=SampleDB;Integrated Security=True;";
            // 存储过程名称
            string procedureName = "GetEmployeeByID";
            // 参数值
            int employeeID = 1;
            // 调用存储过程并获取结果
            using (SqlConnection connection = new SqlConnection(connectionString))
            {
                connection.Open();
                using (SqlCommand command = new SqlCommand(procedureName, connection))
                {
                    // 设置命令类型为存储过程
                    command.CommandType = System.Data.CommandType.StoredProcedure;
                    // 添加存储过程参数
                    command.Parameters.AddWithValue("@EmployeeID", employeeID);
                    // 执行存储过程并读取结果
                    using (SqlDataReader reader = command.ExecuteReader())
                    {
                        while (reader.Read())
                        {
                            Console.WriteLine($"EmployeeID: {reader["EmployeeID"]}, FirstName: {reader["FirstName"]}, LastName: {reader["LastName"]}, Department: {reader["Department"]}");
                        }
                    }
                }
            }
        }
    }
}

运行程序

编译并运行上述C#程序,你将看到控制台输出如下信息:

EmployeeID: 1, FirstName: John, LastName: Doe, Department: HR

常见问题解答(FAQs)

Q1: 如果存储过程有多个参数怎么办?

A1: 你可以通过command.Parameters.AddWithValue 方法添加多个参数,如果存储过程GetEmployeeByIDAndDepartment 需要两个参数@EmployeeID 和@Department,你可以这样添加参数:

command.Parameters.AddWithValue("@EmployeeID", employeeID);
command.Parameters.AddWithValue("@Department", "HR");

Q2: 如果存储过程返回多行结果怎么办?

A2: 上述代码已经展示了如何处理多行结果,使用SqlDataReader 的Read 方法循环读取每一行数据,并通过列名或索引访问每一列的值。

小编有话说

通过这个简单的实例,我们可以看到在C#中调用存储过程并不复杂,关键在于正确设置数据库连接字符串、命令类型、参数以及处理结果集,希望这个实例能帮助你快速上手在C#中调用存储过程,如果你有任何疑问或需要进一步的帮助,请随时留言。

0