检查数据读取器是否返回行

时间:2014-01-24 00:51:29

标签: vb.net

在运行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

1 个答案:

答案 0 :(得分:0)

如果期待一条记录,请尝试:

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