如何将sqlparameter传递给IN()?
由于某种原因,我的IN()子句的Sqlparameter无法正常工作。代码可以正常编译,如果我用实际值替换参数,查询就可以正常工作
StringBuilder sb = new StringBuilder(); foreach (User user in UserList)
{
sb.Append(user.UserId + ",");
}
string userIds = sb.ToString();
userIds = userIds.TrimEnd(new char[] { ',' });
SELECT userId, username
FROM Users
WHERE userId IN (@UserIds)
回答:
您必须为IN
子句中所需的每个值创建一个参数。
SQL需要看起来像这样:
SELECT userId, username FROM Users
WHERE userId IN (@UserId1, @UserId2, @UserId3, ...)
所以,你需要创建的参数 在IN
在第foreach
循环。
这样的事情(在我脑海中,未经测试):
StringBuilder sb = new StringBuilder();int i = 1;
foreach (User user in UserList)
{
// IN clause
sb.Append("@UserId" + i.ToString() + ",");
// parameter
YourCommand.Parameters.AddWithValue("@UserId" + i.ToString(), user.UserId);
i++;
}
以上是 如何将sqlparameter传递给IN()? 的全部内容, 来源链接: utcz.com/qa/421638.html