在读取数据库列的值时出现错误“在没有数据存在时无效的读取尝试”

时间:2019-05-03 21:01:50

标签: sql vb.net sqldatareader

尝试读取列的值时,出现错误

  

在没有数据的情况下无效的读取尝试

代码:

If reader.HasRows Then
  name = reader("UserFirstName").ToString
  MsgBox(name)
End If

reader.HasRows返回True,但是在打印“名称”时会发生错误。

PS:表中存在UserFirstName列名。

1 个答案:

答案 0 :(得分:2)

即使尝试调用 HasRows 并且返回true,也需要先调用Read方法,然后再尝试从DataReader中获取内容。
需要执行Read调用,因为在执行命令以取回读取器之后,该对象不包含第一条记录中的数据,只有在Read之后,您才可以开始获取数据。

If reader.Read() Then
  name = reader("UserFirstName").ToString
  MsgBox(name)
End If

如您所见,您不需要调用 HasRows ,因为如果没有要读取的记录,则Read方法将直接返回false。