Ошибка «Недопустимая попытка чтения при отсутствии данных» при чтении значения столбца базы данных - PullRequest
0 голосов
/ 04 мая 2019

При попытке прочитать значение столбца я получаю сообщение об ошибке

Недопустимая попытка чтения при отсутствии данных

Код:

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

reader.HasRows возвращает значение True, но при печати имени name возникает ошибка.

PS: UserFirstName имя столбца существует в таблице.

1 Ответ

2 голосов
/ 04 мая 2019

Вам нужно вызвать метод Read , прежде чем пытаться извлечь что-то из DataReader, даже если вы вызываете HasRows и он возвращает true.
Вызов Read необходим, потому что после выполнения команды вернуть читателя этот объект не содержит данных из первой записи и только после Read вы можете начать получать свои данные.

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

Как видите, вам не нужен вызов HasRows , потому что если нет записей для чтения, метод Read возвращает непосредственно false.

...