函数SqlDataReader.Read
的MSDN文档说明了返回类型:
如果有更多行,则为true;否则是假的。
我觉得这个提法有误导性,因为它表明在Read
返回后,至少还有一行可以被读取,即下一个Read
应该成功但返回false。
实际上,返回类型表示它期望的是什么,这是:“如果成功读取了行则返回true,否则返回false”。
仅仅是我还是选择的术语是错误的?
答案 0 :(得分:3)
MSDN SqlDataReader.Read Method声明了Read方法 -
将SqlDataReader推进到下一条记录。
并返回
如果有更多行,则为true;否则是假的。
创建SqlDataReader对象时,它不指向第一条记录。您需要调用Read方法。如果调用成功,则SqlDataReader对象将指向第一个记录并返回True。
答案 1 :(得分:1)
并不表示读取后的条件 从字面上看是的,你可以做出这样的解释 把它带到有意义和你观察到的行为。
执行命令时的条件不是命令后的条件。
当我从第二行到最后一行读取时,条件为真 我得到了最后一排。
现在我在最后一行并发出命令Read
此时没有更多行,返回值为false。
如果它按照你的建议行事,则不会读取最后一行
while (Reader.Read())
{
}