在C#中使用SQL Server存儲(chǔ)過(guò)程,你需要遵循以下步驟:
GetEmployee
的存儲(chǔ)過(guò)程,該過(guò)程接受一個(gè)參數(shù)@EmployeeID
并返回員工信息。CREATE PROCEDURE GetEmployee
@EmployeeID INT
AS
BEGIN
SELECT * FROM Employees WHERE EmployeeID = @EmployeeID;
END
在C#項(xiàng)目中添加對(duì)System.Data和System.Data.SqlClient的引用。這些命名空間包含與數(shù)據(jù)庫(kù)交互所需的類(lèi)。
在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é)果集并輸出員工信息。