簡體   English   中英

當返回的數據集包含一個空行時,Rows.Count = 1

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM