2014-01-24 78 views
1

當我通過SQL compact 3.5數據庫的列運行時,應使用哪些函數來檢查我的數據讀取器是否返回行?顯然,如果記錄不可滾動,則使用dr.hasrows會拋出SQL精簡版不支持.hasrows的錯誤。當使用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

如果期待一個記錄,請嘗試:

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

好吧!奇蹟般有效。謝啦! –