更新於 2023/08/21閱讀時間約 3 分鐘

[C#] 使用參數化查詢進行安全的SQL資料存取


什麼是參數化查詢?

參數化查詢是一種將參數值傳遞給SQL語句的技術,這些參數值不會被直接解釋為SQL語法。這樣可以防止惡意用戶通過在輸入中插入惡意的SQL語法來攻擊資料庫。參數化查詢的一個主要優點是它能夠提高安全性,同時也能夠幫助資料庫優化查詢。

使用參數化查詢的步驟

以下是在C#中使用參數化查詢進行安全的SQL資料存取的步驟:

建立資料庫連接

首先,我們需要建立與資料庫的連接。使用System.Data.SqlClient命名空間提供的SqlConnection類可以實現與SQL Server資料庫的連接。

using System.Data.SqlClient;

// ...

string connectionString = "Your_Connection_String";
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();

// 在這裡執行參數化查詢
}

請將Your_Connection_String替換為你的實際連接字符串。

編寫參數化SQL語句

接下來,我們需要編寫一個參數化的SQL語句。在SQL語句中使用@符號作為參數的占位符。例如:

string queryString = "SELECT * FROM YourTable WHERE ColumnName = @Value";

YourTableColumnName替換為實際的表名和列名。

創建SqlCommand對象並添加參數

現在,我們可以創建一個SqlCommand對象並為參數添加值。使用Parameters.AddWithValue方法可以將參數值添加到命令對象中。

using (SqlCommand command = new SqlCommand(queryString, connection))
{
// 替換這裡的參數名稱和值
command.Parameters.AddWithValue("@Value", "要查詢的值");

// 在這裡執行查詢並處理結果
}

請將@Value"要查詢的值"替換為實際的參數名稱和值。

執行查詢並處理結果

最後,我們可以使用ExecuteReader方法來執行查詢並處理結果。

using (SqlDataReader reader = command.ExecuteReader())
{
while (reader.Read())
{
// 處理查詢結果
Console.WriteLine(reader["ColumnName"]);
}
}

請確保在循環中處理查詢結果。同時,將"ColumnName"替換為實際的列名。



在C#中,使用參數化查詢是確保SQL資料交換安全性的重要方法。通過將參數值傳遞到SQL語句中,我們可以防止SQL注入攻擊並提高應用程序的安全性。通過System.Data.SqlClient命名空間提供的類和方法,我們可以輕鬆地實現參數化查詢,從而確保我們的資料庫操作是安全的。

分享至
成為作者繼續創作的動力吧!
© 2024 vocus All rights reserved.