阅读量:0
在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注入,还可以提高查询性能,并且可以在多次执行相同查询时重用已编译的查询计划。因此,建议始终使用参数化查询来执行数据库操作。