2014-01-24 4 views
1

Какие функции следует использовать, чтобы проверить, возвращает ли мой datareader строку при запуске через столбцы базы данных SQL compact 3.5? Очевидно, использование dr.hasrows вызывает эту ошибку, которая говорит, что SQL compact edition не поддерживает .hasrows, если записи не прокручиваются. И используя resultsetoption.scrollable при использовании datareader.executeresultset дает мне «отсутствие данных для строки/столбца», когда запись, которую я пытаюсь вывести, имеет запись в моей базе данных. И если с помощью TypeOf DataReader ("ColumnName") является DBNull ничего не делает, как в этом примере:Проверка того, что считыватель данных возвращает строки

While dr.Read 
     If Not TypeOf dr("LibrarianID") Is DBNull Then 
      If dr("LibrarianID") = txtUserID.Text And dr("LibrarianPassword") = txtPassword.Text Then 
       MsgBox("Successfully logged in.", MsgBoxStyle.Information, "Logged in to library") 
       Me.Hide() 
       main.tslUserLoggedIn.Text = dr("FirstName") & " " & dr("MI") & " " & dr("LastName") 
       main.tslPosition.Text = "Librarian" 
       main.Show() 
      Else 
       MsgBox("Username and password mismatch!", MsgBoxStyle.Critical, "Login error") 
      End If 

     Else 
      MsgBox("User not found!", MsgBoxStyle.Critical, "Login error") 
     End If 
    End While 

ответ

0

Если ожидая одну запись, попробуйте:

If dr.Read Then 
    If dr("LibrarianID") IsNot Nothing Then 
    // something... 
    End If 
Else 
    // no records 
End If 
+0

хорошо! работает как шарм. Спасибо чувак! –

Смежные вопросы