溫馨提示×

C#中SqlParameter與存儲過程的結(jié)合使用

c#
小樊
81
2024-09-23 21:37:48
欄目: 云計算

在C#中,SqlParameter對象用于向SQL Server數(shù)據(jù)庫發(fā)送參數(shù)化的查詢。它與存儲過程結(jié)合使用時,可以實現(xiàn)更安全、更靈活的數(shù)據(jù)傳遞和查詢操作。以下是如何在C#中使用SqlParameter與存儲過程結(jié)合的示例:

  1. 首先,確保已安裝并引用了System.Data.SqlClient命名空間。

  2. 創(chuàng)建一個存儲過程,例如:

CREATE PROCEDURE GetEmployeeById
    @EmployeeId INT
AS
BEGIN
    SELECT * FROM Employee WHERE EmployeeId = @EmployeeId;
END
  1. 在C#代碼中,創(chuàng)建一個SqlConnection對象,連接到數(shù)據(jù)庫:
using System.Data.SqlClient;

string connectionString = "your_connection_string";
SqlConnection connection = new SqlConnection(connectionString);
  1. 使用SqlCommand對象執(zhí)行存儲過程,并添加SqlParameter對象:
int employeeId = 1;

using (connection)
{
    connection.Open();

    using (SqlCommand command = new SqlCommand("EXEC GetEmployeeById @EmployeeId", connection))
    {
        command.Parameters.AddWithValue("@EmployeeId", employeeId);

        using (SqlDataReader reader = command.ExecuteReader())
        {
            if (reader.Read())
            {
                int id = reader.GetInt32(0);
                string name = reader.GetString(1);
                // ... 獲取其他字段

                Console.WriteLine($"Employee ID: {id}, Name: {name}");
            }
            else
            {
                Console.WriteLine("Employee not found.");
            }
        }
    }
}

在這個示例中,我們首先創(chuàng)建了一個SqlConnection對象,然后使用它創(chuàng)建了一個SqlCommand對象。我們在SqlCommand對象的Parameters集合中添加了一個SqlParameter對象,用于傳遞參數(shù)@EmployeeId。最后,我們使用ExecuteReader方法執(zhí)行存儲過程,并從結(jié)果集中讀取數(shù)據(jù)。

注意:在實際應(yīng)用中,應(yīng)確保正確處理異常和關(guān)閉資源。這里為了簡潔起見,省略了異常處理和資源關(guān)閉的代碼。

0