在SqlDataAdapter中防止SQL注入的最佳方法

时间:2013-09-29 12:31:33

标签: c# sql sql-server winforms

您好我想知道SQL injection中防范SqlDataAdapter的最佳方法是什么(因为无法使用参数化查询)?

例如,让我们使用这部分代码:

da_services = new SqlDataAdapter("SELECT * from table WHERE column='" + textBox1.Text + "' AND column2='" + somestring + "'", conn);
scd_services = new SqlCommandBuilder(da_services);
dt_services = new DataTable();
da_services.Fill(dt_services);
dtg_services.DataSource = dt_services;
conn.Close();

感谢您的时间。

1 个答案:

答案 0 :(得分:5)

您可以尝试访问DataAdapter的SqlCommand对象:

da_services = new SqlDataAdapter("SELECT * from table WHERE column=@column AND column2=@column2", conn);
da_services.SelectCommand.Parameters.AddWithValue("@column", textBox1.Text);
da_services.SelectCommand.Parameters.AddWithValue("@column2", somestring);