2012-05-21 47 views
0

我在將數據發送到我的訪問數據庫時遇到問題。NullReferenceExeption未處理「未將對象引用設置爲對象的實例」。

我得到這個錯誤

NullReferenceExeption是未處理的 - 「對象引用不設置到對象的實例」 on this part of my code maxrows = ds.Tables(「asdf」)。Rows.Count

這是什麼意思?

這裏是我的代碼:

Private Sub btnSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSave.Click 

    ID = TextID.Text 
    FName = Textfname.Text 
    LName = Textlname.Text 
    If con.State = ConnectionState.Closed Then 
     con.Open() 
    End If 

    If TextID.Tag & "" = "" Then 
     cmd = New OleDbCommand("INSERT INTO asdf(ID,fname,lname) " & _ 
     "VALUES(' " & TextID.Text & "', '" & Textfname.Text & "', '" & Textlname.Text & "')", con) 
     cmd.ExecuteNonQuery() 
    Else 
     cmd.CommandText = "UPDATE asdf" & _ 
     "SET ID=" & TextID.Text & _ 
     ", fname='" & Textfname.Text & "'" & _ 
     ",lname ='" & Textlname.Text & "'" & _ 
     ", WHERE ID =" & TextID.Tag 
    End If 

    btnClear.PerformClick() 

    MessageBox.Show("Data successfully saved!") 
    maxrows = ds.Tables("asdf").Rows.Count ' <---- Exception occurs here 
    inc = 1 
    con.Close() 
    RefreshData() 

End Sub 
+0

當您嘗試在空對象上調用方法時出現此錯誤。在這種情況下,它意味着您的數據集ds或表爲空。 – McGarnagle

+0

我將如何解決這個錯誤?即時通訊對不起,我只是新的VB編程。 –

+2

那麼,我會從** ds **對象開始。它在哪裏宣佈?我在你列出的代碼中沒有看到它。 – McGarnagle

回答

0

在此行的代碼放在一個斷點(F9或單擊空白處):maxrows = ds.Tables("asdf").Rows.Count並運行它。

採取以下步驟:

  • 將鼠標懸停在ds或右鍵單擊並選擇快速觀察,看看它是否 說null
  • 如果不是,請突出顯示ds.Tables("asdf")並快速查看它並 查看它是否爲null
  • 如果不是,請突出顯示ds.Tables("asdf").Rows並查看是否爲 null

其中一個必須爲null,如果它在那裏崩潰。如果是這樣的話,那麼你沒有正確填寫它,或者沒有填充它。

相關問題