3 回答

TA貢獻(xiàn)1772條經(jīng)驗(yàn) 獲得超6個(gè)贊
將您的權(quán)限值放入數(shù)組中?。∪绻鷪?jiān)持使用當(dāng)前的變量,您可以這樣做:
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貢獻(xiàn)1862條經(jīng)驗(yàn) 獲得超6個(gè)贊
好吧,我想我會在我自己弄清楚如何做后回答這個(gè)問題,但真的很感謝大家的建議。
它將是純 SQL,就像這樣:
sql = "SELECT * from requestsTable WHERE priv IN (SELECT priv FROM privilegesTable WHERE userID=@userID)
- 3 回答
- 0 關(guān)注
- 213 瀏覽
添加回答
舉報(bào)