Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# SqlCeDatareader.HasRows引发异常_C#_Sql Server Ce_Datareader - Fatal编程技术网

C# SqlCeDatareader.HasRows引发异常

C# SqlCeDatareader.HasRows引发异常,c#,sql-server-ce,datareader,C#,Sql Server Ce,Datareader,如何解决这个问题 或者是否有其他方法检查结果是否包含任何记录?(rdr.Read()方法除外) 顺便说一句,我使用的是SQLServerCompact3.5,你说“除了rdr.Read()方法之外”,但这对我来说是最自然的方法 调用Read(),如果返回true,则填充结果,否则将结果设置为null 还要注意 catch (Exception e) { throw; } 这通常是一种令人憎恶的东西,应该清除。我还想对设计和实施提出质疑,该设计和实施: 忽略命名约定(getSites)

如何解决这个问题

或者是否有其他方法检查结果是否包含任何记录?(rdr.Read()方法除外)

顺便说一句,我使用的是SQLServerCompact3.5,你说“除了rdr.Read()方法之外”,但这对我来说是最自然的方法

调用
Read()
,如果返回true,则填充结果,否则将结果设置为null

还要注意

catch (Exception e)
{
    throw;
}
这通常是一种令人憎恶的东西,应该清除。我还想对设计和实施提出质疑,该设计和实施:

  • 忽略命名约定(
    getSites
  • 使用
    bool
    返回值,但始终返回true,并使用
    out
    参数表示实际结果
  • 没有处理命令本身
  • 在需要之前声明了
    rdr
    方法,没有明显的原因。(在
    之外使用
    语句是没有用的,为什么不在那里声明呢?)

如果不调用Read,您甚至无法获取第一行的数据,因此我不确定OP后面是什么:实际上。Read将记录进一步移动,因此我将错过第一条记录。。感谢您提供与设计相关的建议:)@dotNETbeginner:所以只需无条件地调用扩展方法,如果没有行,则不会返回任何结果。@dotNETbeginner:它最初位于
-1