在C#中,可以使用參數化查詢來防止SQL注入。參數化查詢是一種將查詢參數與SQL語句分離的方法,它可以確保輸入的值在傳遞給數據庫之前被正確編碼。
以下是一個使用參數化查詢的示例:
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
string query = "SELECT * FROM Users WHERE Username = @Username AND Password = @Password";
SqlCommand command = new SqlCommand(query, connection);
// 添加參數并設置值
command.Parameters.AddWithValue("@Username", username);
command.Parameters.AddWithValue("@Password", password);
SqlDataReader reader = command.ExecuteReader();
// 處理查詢結果
while (reader.Read())
{
// 處理每一行數據
}
}
在上面的示例中,使用了SqlCommand
類的Parameters.AddWithValue
方法添加參數。這樣,參數的值將被正確地編碼,從而防止SQL注入攻擊。
請注意,使用參數化查詢不僅可以防止SQL注入,還可以提高查詢性能,并且可以在多次執行相同查詢時重用已編譯的查詢計劃。因此,建議始終使用參數化查詢來執行數據庫操作。