0

アクセス データベースへのデータ送信に問題があります。

このエラーが発生します

NullReferenceExeption は処理されませんでした - 「オブジェクト参照がオブジェクトのインスタンスに設定されていません。」on this part of my codemaxrows = 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
4

1 に答える 1

0

このコード行にブレークポイント (F9 キーまたは余白をクリック) を置き、maxrows = ds.Tables("asdf").Rows.Countそれを実行します。

次の手順を実行します。

  • カーソルを合わせるdsか、右クリックして [クイック ウォッチ] を選択し、 と表示されるかどうかを確認しますnull
  • そうでない場合は、それを強調表示ds.Tables("asdf")してクイック ウォッチし、それが であるかどうかを確認しnullます。
  • そうでない場合は、強調表示して、それがds.Tables("asdf").Rowsであるかどうかを確認し nullます。

そこでクラッシュしている場合、これらの 1 つが null でなければなりません。その場合は、正しく入力されていないか、入力するものが何もありませんでした。

于 2012-05-21T19:09:48.430 に答える