C#使用SqlParameter防SQL注入保存数据方法
时间: 2024-10-25 16:07:11 浏览: 24
C#使用带like的sql语句时防sql注入的方法
在C#中,为了防止SQL注入攻击,特别是在处理用户输入的数据并将其插入数据库操作时,通常会使用SqlCommand对象的SqlParameter属性。SqlParameter提供了一种安全的方式来传递数据到SQL查询:
```csharp
using System.Data.SqlClient;
// 假设我们有一个字符串变量,包含用户输入
string userInput = "value from user";
// 创建SqlCommand实例
SqlCommand cmd = new SqlCommand();
// 定义SqlParameter
SqlParameter param = new SqlParameter();
param.ParameterName = "@Input"; // 参数名称
param.SqlDbType = SqlDbType.VarChar; // 数据类型,这里假设是字符串
param.Size = userInput.Length + 1; // 预留足够的空间,包括null字符
param.Value = userInput; // 设置参数值
// 将SqlParameter添加到SqlCommand中
cmd.Parameters.Add(param);
// SQL查询示例,使用参数而不是直接拼接字符串
string sqlQuery = "INSERT INTO YourTable (YourColumn) VALUES (@Input)";
cmd.CommandText = sqlQuery;
try {
using (SqlConnection connection = new SqlConnection("your_connection_string")) {
connection.Open();
cmd.ExecuteNonQuery(); // 执行插入操作
}
} catch (Exception ex) {
Console.WriteLine($"Error: {ex.Message}");
}
阅读全文