我的查询不会返回任何空行,因为没有符合查询所有条件的记录。但是,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下正常工作。
答案 0 :(得分:0)
避免错误:
if (ds.Tables.Count > 0)
{
if (ds.Tables[0].Rows.Count > 0)
{
//Then Return a value here or Get the date
foreach (DataRow dr in ds.Tables[0].Rows)
{
String getFirstRow = dr[0].ToString();
//And so on........
}
}
else
{
//Return value if no rows found.
}
}
答案 1 :(得分:0)
我需要添加的内容只是对“LicenseID&lt;&gt;''”的额外检查。 “LicenseID IS NOT NULL”是不够的,因为已经有记录符合所有条件,但LicenseID =“”。我相信这对Oracle数据库来说不是问题,但在切换到SQL Server之后却成了问题。感谢您的所有意见和建议。