您好,我想知道在 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();
感谢您的时间。
最佳答案
您可以尝试访问 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);
关于c# - 在 SqlDataAdapter 中防止 SQL 注入(inject)的最佳方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19078072/