请帮我修复下面这个命令文本“查询”的语法。我想传递一个整数“ints”列表来检索与它们匹配的所有行。
private void(List<int>ints)
{
// some variables
string query =
string.Format(
"SELECT * FROM " + table +
" WHERE SubId={0} AND RouteID IN({1})",
SubId,
ints
);
// more stuff
}
答案 0 :(得分:2)
如果您想格式化int
这样的列表,则需要在其间添加逗号:
string.Format(
"SELECT * FROM " + table +
" WHERE SubId={0} AND RouteID IN({1})",
SubId,
string.Join(",", ints)
);
假设一切都是int
,没有任何内容来自用户输入,并且列表不会太长,这应该可以正常工作。但是,您应该强烈考虑转向参数化SQL。具体来说,在这种情况下,您可以使用table-valued parameter来大大改善查询。