假设我有叫一表“名称”如何选择SQL表的特定行,而不在.NET循环
ID | Name
---+--------------
1 | Bob
2 | Billy
3 | James
4 | John
5 | Tom
and on and on with thousands of names...
假设我写了下面的.NET代码来检索名称:
public DataSet selectFromNames()
{
const string SQL_STATEMENT =
@"SELECT Id, Name From Names;";
Database db = EnterpriseLibraryContainer.Current.GetInstance<Database>("MyConnection");
DbCommand command = db.GetSqlStringCommand(SQL_STATEMENT);
command.CommandType = CommandType.Text;
command.CommandText = SQL_STATEMENT;
DataSet ds = db.ExecuteDataSet(command);
return ds;
}
工作正常。如果我想要一个具有整型数组参数的函数来指定我想要检索的名称的行,该怎么办?我将如何编写该查询?
我很熟悉传递参数@parameter
,但我不知道如何传递一个数组来使用字符串生成器来编写类似where ID in (1,2,3)
这是丑陋的和容易出错的。
可能重复的[参数化IN子句一个SQL?](http://stackoverflow.com/questions/337704/parameterizing-a-sql-in-clause)如果你可能会发现SQL Server有用[http://www.sommarskog.se/arrays-in-sql.html](http://www.sommarskog.se/arrays-in-sql.html) – 2011-04-27 21:07:40