【发布时间】:2017-09-06 01:42:27
【问题描述】:
我的查询只返回一个空行,因为没有符合我查询的所有条件的记录。但是,Rows.Count 是 1 而不是 0。这是我的查询:
SELECT LicenseID
FROM LICENSES
WHERE LicenseType = @LicenseType
AND DriverID = @DriverID
AND CarID IN(
SELECT CarID
FROM CARS
WHERE CarSerial = @CarSerial
AND DriverID = @DriverID
) AND LicenseID IS NOT NULL
AND ((StartDate <= CONVERT(DATETIME, @EndDate))
AND (EndDate >= CONVERT(DATETIME, @StartDate)))
这是我的 C# if 语句条件,由于某些原因,由于行数,即使没有记录满足条件,该条件仍然为真:
if (ds != null && ds.Tables[0].Rows.Count > 0)
使用的数据库是 SQL Server。这以前似乎在 Oracle 下可以正常工作。
【问题讨论】:
-
空行仍然是一行。在 sql 中尝试一些 isnull ?
-
如果没有符合查询所有条件的记录,那么您的查询将返回 zero 行,而不是空行。所以,很明显,你做错了什么。
-
如果你得到 1 行返回,你能看到值是什么吗?也许这将有助于解决问题。基本上,在执行那行代码的时候,有一行数据,所以找出它是什么。
-
如果数据库为空值,则此代码“if (ds != null && ds.Tables[0].Rows.Count > 0)”返回错误。
-
@Trey - 我的 SQL 已经有了 isnull。
标签: c# sql-server dataset rowcount