[英]Rows.Count = 1 when returned dataset consists of an empty row
我的查詢只返回一個空行,因為沒有符合我查詢所有條件的記錄,因此不返回任何內容。 但是,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下似乎可以正常工作。
為避免錯誤:
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.
}
}
我需要添加的只是對“ LicenseID <>”的額外檢查。 “ LicenseID IS NOT NULL”是不夠的,因為有一條記錄滿足所有條件,但LicenseID =“”。 我相信這不是Oracle數據庫的問題,但在切換到SQL Server之后卻成為問題。 感謝您的所有意見和建議。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.