在C#中,使用参数化查询可以提高安全性和性能
using System.Data;
using System.Data.SqlClient;
public void ExecuteParameterizedQuery()
{
// 定义连接字符串
string connectionString = "your_connection_string";
// 定义SQL语句和参数
string sqlCommandText = "INSERT INTO Users (Username, Email) VALUES (@username, @email)";
// 创建一个SqlConnection对象
using (SqlConnection connection = new SqlConnection(connectionString))
{
// 创建一个SqlCommand对象
using (SqlCommand command = new SqlCommand(sqlCommandText, connection))
{
// 添加参数
command.Parameters.Add("@username", SqlDbType.NVarChar).Value = "exampleUsername";
command.Parameters.Add("@email", SqlDbType.NVarChar).Value = "exampleEmail@example.com";
// 打开连接
connection.Open();
// 执行参数化查询
int rowsAffected = command.ExecuteNonQuery();
// 输出结果
Console.WriteLine($"Rows affected: {rowsAffected}");
}
}
}
在这个示例中,我们定义了一个名为ExecuteParameterizedQuery
的方法。该方法使用参数化查询将新记录插入到名为Users
的表中。我们使用SqlConnection
和SqlCommand
对象来执行查询,并使用command.Parameters.Add()
方法添加参数。最后,我们调用command.ExecuteNonQuery()
方法执行查询并返回受影响的行数。
请注意,为了避免SQL注入攻击,请始终使用参数化查询而不是直接将用户输入拼接到SQL语句中。