3 回答
TA贡献1772条经验 获得超6个赞
将您的权限值放入数组中!!如果您坚持使用当前的变量,您可以这样做:
bool[] privileges = new bool[] { priv1, priv2, priv3, priv4, priv4 };
一旦它们在那里,您就可以使用 LINQ 生成 IN 子句:
var list = privileges
.Select
(
(p,i) => new
{
Index = i + 1, //Need to add 1, since array is zero-based
Value = p
}
)
.Where
(
p => p.Value
)
.Select
(
p => string.Format("'{0}'", p.Index)
);
var sql = string.Format
(
"SELECT * FROM table WHERE priv IN ({0}) ",
string.Join(",", list)
);
这将为您提供以下格式的 SQL 字符串:
SELECT * FROM table WHERE priv IN ('1','2')
TA贡献1862条经验 获得超6个赞
好吧,我想我会在我自己弄清楚如何做后回答这个问题,但真的很感谢大家的建议。
它将是纯 SQL,就像这样:
sql = "SELECT * from requestsTable WHERE priv IN (SELECT priv FROM privilegesTable WHERE userID=@userID)
- 3 回答
- 0 关注
- 190 浏览
添加回答
举报