可能重复:
Parameterizing an SQL IN clause?SQL SELECT语句 - 在IN子句多个ID
时不时地,我一个系统,允许用户选择多个项目,然后执行上工作对他们采取大规模行动。通常情况下,我使出建立在运行时的SQL,像这样:
string inClause = String.Join(", ", selectedIds);
string command = "SELECT * FROM Customer WHERE CustomerId IN ({0})";
command = String.Format(command, inClause);
当然,这种风格的代码是因为SQL注入的不安全。我可以通过加入参数占位符和创建参数来解决这个问题。
不过,我想知道是否有另一种方法,我没有考虑。我当然不希望为每个ID执行一次命令。
http://stackoverflow.com/a/337792/284240 –
看一看http://stackoverflow.com/questions/337704/parameterizing-an-sql-in-clause –
如果'selectedIds'是一个数组整数,没有SQL注入的危险。没有办法在一个整数中填充一个''''。 – Andomar