在运行SQL compact 3.5数据库的列时,我应该使用哪些函数来检查我的datareader是否返回一行?显然使用dr.hasrows抛出了SQL压缩版不支持的错误。如果记录不可滚动,则会出现错误。使用datareader.executeresultset时使用resultsetoption.scrollable给我一个“行/列没有数据”错误,当我试图清除的记录在我的数据库中有一个记录。使用if 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 :(得分:0)
如果期待一条记录,请尝试:
If dr.Read Then
If dr("LibrarianID") IsNot Nothing Then
// something...
End If
Else
// no records
End If