繁体   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