SqlDataReader.Read返回值解释

时间:2015-06-20 13:46:05

标签: c# sql .net

函数SqlDataReader.Read的MSDN文档说明了返回类型:

  

如果有更多行,则为true;否则是假的。

我觉得这个提法有误导性,因为它表明在Read返回后,至少还有一行可以被读取,即下一个Read应该成功但返回false。

实际上,返回类型表示它期望的是什么,这是:“如果成功读取了行则返回true,否则返回false”。

仅仅是我还是选择的术语是错误的?

2 个答案:

答案 0 :(得分:3)

MSDN SqlDataReader.Read Method声明了Read方法 -

  

将SqlDataReader推进到下一条记录。

并返回

  

如果有更多行,则为true;否则是假的。

创建SqlDataReader对象时,它不指向第一条记录。您需要调用Read方法。如果调用成功,则SqlDataReader对象将指向第一个记录并返回True。

答案 1 :(得分:1)

并不表示读取后的条件 从字面上看是的,你可以做出这样的解释 把它带到有意义和你观察到的行为。

执行命令时的条件不是命令后的条件。

当我从第二行到最后一行读取时,条件为真 我得到了最后一排。

现在我在最后一行并发出命令Read
此时没有更多行,返回值为false。

如果它按照你的建议行事,则不会读取最后一行

while (Reader.Read())
{
}