string test = "SELECT count(*) FROM table where email=@email AND active=@active";
您好,是否可以使用 C# 来检查两个条件是否为真或只有一个条件为真?
int count = testCMD.ExecuteNonQuery();
我已经尝试使用上面的代码,但我不确定我是否理解它是如何工作的。只有当两个条件都为真时才会计数为 1?
string test = "SELECT count(*) FROM table where email=@email AND active=@active";
您好,是否可以使用 C# 来检查两个条件是否为真或只有一个条件为真?
int count = testCMD.ExecuteNonQuery();
我已经尝试使用上面的代码,但我不确定我是否理解它是如何工作的。只有当两个条件都为真时才会计数为 1?
Count 将返回两个条件都为真的结果数。如果要检查其中一个,请使用 OR 而不是 AND。
只有当两个条件都为真时才会计数为 1?
是的。您在查询中使用AND
运算符。
是否可以使用 C# 检查两个条件是否为真,或者其中一个条件是否为真?
通过上述查询,否。你不能。您需要为每个参数创建两个不同的查询,或者使用OR
operator inplace ofAND
来查看其中一个条件是否为真。但是OR
你不能确定哪一个是真的。
尝试:
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();