3
string  test = "SELECT count(*) FROM table where email=@email AND active=@active";

您好,是否可以使用 C# 来检查两个条件是否为真或只有一个条件为真?

int count = testCMD.ExecuteNonQuery();

我已经尝试使用上面的代码,但我不确定我是否理解它是如何工作的。只有当两个条件都为真时才会计数为 1?

4

3 回答 3

2

Count 将返回两个条件都为真的结果数。如果要检查其中一个,请使用 OR 而不是 AND。

数数

于 2013-04-25T09:37:31.433 回答
2

只有当两个条件都为真时才会计数为 1?

的。您在查询中使用AND运算符。

是否可以使用 C# 检查两个条件是否为真,或者其中一个条件是否为真?

通过上述查询,。你不能。您需要为每个参数创建两个不同的查询,或者使用ORoperator inplace ofAND来查看其中一个条件是否为真。但是OR你不能确定哪一个是真的。

于 2013-04-25T09:37:55.570 回答
1

尝试:

string test = "
    select COUNT(*) from(
        select case when (SELECT count(*) FROM table where email=@email AND active=@active)>0 then 1 else null end Num
        union all
        select case when (SELECT count(*) FROM table where email=@email OR active=@active)>0 then 1 else null end Num
    )x where Num is not null"

如果两个条件都为真,则返回 2,如果其中任何一个条件为真,则返回 1,如果两个条件都为假,则返回 0。

并使用ExecuteScalar() 代替ExecuteNonQuery()(返回影响的行数)。

i.e. int count  = (Int32)testCMD.ExecuteScalar();
于 2013-04-25T09:39:48.407 回答