C#中如何使用SQL Server存儲(chǔ)過(guò)程

c#
小樊
83
2024-09-06 04:49:14
欄目: 云計(jì)算

在C#中使用SQL Server存儲(chǔ)過(guò)程,你需要遵循以下步驟:

  1. 創(chuàng)建一個(gè)SQL Server存儲(chǔ)過(guò)程。首先,在SQL Server Management Studio (SSMS) 或其他數(shù)據(jù)庫(kù)管理工具中創(chuàng)建一個(gè)存儲(chǔ)過(guò)程。例如,創(chuàng)建一個(gè)名為GetEmployee的存儲(chǔ)過(guò)程,該過(guò)程接受一個(gè)參數(shù)@EmployeeID并返回員工信息。
CREATE PROCEDURE GetEmployee
    @EmployeeID INT
AS
BEGIN
    SELECT * FROM Employees WHERE EmployeeID = @EmployeeID;
END
  1. 在C#項(xiàng)目中添加對(duì)System.Data和System.Data.SqlClient的引用。這些命名空間包含與數(shù)據(jù)庫(kù)交互所需的類(lèi)。

  2. 在C#代碼中調(diào)用存儲(chǔ)過(guò)程。以下是一個(gè)示例,展示了如何使用ADO.NET調(diào)用上面創(chuàng)建的GetEmployee存儲(chǔ)過(guò)程:

using System;
using System.Data;
using System.Data.SqlClient;

namespace SqlServerStoredProcedureExample
{
    class Program
    {
        static void Main(string[] args)
        {
            // 連接字符串,根據(jù)實(shí)際情況修改
            string connectionString = "Data Source=your_server;Initial Catalog=your_database;User ID=your_username;Password=your_password";
            
            // 創(chuàng)建一個(gè)SqlConnection對(duì)象
            using (SqlConnection connection = new SqlConnection(connectionString))
            {
                // 打開(kāi)數(shù)據(jù)庫(kù)連接
                connection.Open();
                
                // 創(chuàng)建一個(gè)SqlCommand對(duì)象,指定存儲(chǔ)過(guò)程名稱(chēng)和連接對(duì)象
                using (SqlCommand command = new SqlCommand("GetEmployee", connection))
                {
                    // 設(shè)置命令類(lèi)型為存儲(chǔ)過(guò)程
                    command.CommandType = CommandType.StoredProcedure;
                    
                    // 添加存儲(chǔ)過(guò)程的參數(shù)
                    command.Parameters.AddWithValue("@EmployeeID", 1);
                    
                    // 執(zhí)行存儲(chǔ)過(guò)程并獲取結(jié)果集
                    using (SqlDataReader reader = command.ExecuteReader())
                    {
                        while (reader.Read())
                        {
                            Console.WriteLine($"EmployeeID: {reader["EmployeeID"]}, Name: {reader["Name"]}");
                        }
                    }
                }
            }
        }
    }
}

在這個(gè)示例中,我們首先創(chuàng)建了一個(gè)SqlConnection對(duì)象來(lái)連接到數(shù)據(jù)庫(kù)。然后,我們創(chuàng)建了一個(gè)SqlCommand對(duì)象,指定存儲(chǔ)過(guò)程名稱(chēng)和連接對(duì)象。我們將命令類(lèi)型設(shè)置為CommandType.StoredProcedure,以便ADO.NET知道我們要執(zhí)行的是一個(gè)存儲(chǔ)過(guò)程。接下來(lái),我們添加了存儲(chǔ)過(guò)程的參數(shù),并使用ExecuteReader方法執(zhí)行存儲(chǔ)過(guò)程并獲取結(jié)果集。最后,我們遍歷結(jié)果集并輸出員工信息。

0