Что не так с этой нулевой проверкой для чтения данных - PullRequest
0 голосов
/ 14 апреля 2010
            c.Open()
            r = x.ExecuteReader
            If Not r("filename").IsDbnull Then
                imagepath = "<img src='images/'" & getimage(r("filename")) & " border='0' align='absmiddle'"

            End If
            c.Close()
            r.Close()

Я тоже пробовал;

If r("filename") Is DBNull.Value Then
            imagepath = String.Empty
        Else
            imagepath = "<img src='images/'" & getimage(r("filename")) & " border='0' align='absmiddle'"
        End If
        c.Close()
        r.Close()

Ошибка: недопустимая попытка чтения при отсутствии данных.

Идея моего кода состоит в том, чтобы создавать строку img src только при наличии данных.

Помощь с благодарностью.

Спасибо

Ответы [ 3 ]

2 голосов
/ 14 апреля 2010

Вам нужно вызвать метод Read на вашем SqlDataReader, прежде чем данные станут доступны для чтения.

r = x.ExecuteReader
r.Read()
0 голосов
/ 14 апреля 2010

Если в DataReader после выполнения запроса есть 0 строк, полей не будет вообще, поэтому вы не сможете сравнить их со значением NULL.

Вы можете проверить это с помощью if r.HasRows then //got data ...

0 голосов
/ 14 апреля 2010

Сначала необходимо вызвать метод Read.

If r.Read() AndAlso Not r("filename").IsDbnull Then ...
...