Vb 10 nullreferenceexception

时间:2011-03-08 17:11:25

标签: vb.net visual-studio-2010 nullreferenceexception

我从网上获得了这个代码,但我不能让这个代码在我正在编程的系统上工作,所以我使用相同的代码到另一个系统并且它工作,当我尝试将它用于我的系统时,它失败了,所以我开始了一个新程序,它仍然失败......我的程序出了什么问题?这是代码示例:

Public Class Form2
Dim con As New OleDb.OleDbConnection
Dim dbProvider As String
Dim dbSource As String
Dim ds As New DataSet
Dim da As OleDb.OleDbDataAdapter
Dim sql As String
Dim inc As Integer
Dim max As Integer


Private Sub AllRecordsToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)

dbProvider = "PROVIDER = Microsoft.Jet.OLEDB.4.0;"
    dbSource = "Data Source = C:\Users\Josh\Documents\enrollment.mdb"

    con.ConnectionString = dbProvider & dbSource

    con.Open()

    sql = "SELECT * FROM Personal"
    da = New OleDb.OleDbDataAdapter(sql, con)
    da.Fill(ds, "enrollment")

    max = ds.Tables("enrollment").Rows.Count
    inc = -1

    con.Close()


Private Sub Sve_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Sve.Click

    If inc <> -1 Then
        Dim cb As New OleDb.OleDbCommandBuilder(da)
        Dim dsnewrow As DataRow

        dsnewrow = ds.Tables("enrollment").NewRow()

        dsnewrow.Item("LastName") = TextLast.Text


        ds.Tables("enrollment").Rows.Add(dsnewrow)
        da.Update(ds, "enrollment")

        MsgBox("Saved!")
    End If
End Sub

每当我运行程序时,它都会编译,但是当我单击提交按钮时,此消息显示“NullReference异常未处理对象引用未设置为对象的实例”并且它指向.NewRow

1 个答案:

答案 0 :(得分:0)

如果我读得对,你就会在这一行得到例外:

dsnewrow = ds.Tables("enrollment").NewRow()

这意味着dsnull(不太可能,因为它已初始化),或者数据集中不存在“注册”表。

然而,很难回答你的问题,因为你没有发布所有的代码(第一个sub的末尾缺失,这表明可能还缺少更多的代码)。

在点击提交之前,您是否点击了工具区设置?看起来它负责填充数据集。

但是,大多数情况下,我建议您在开始发布有关它的问题之前,先学会更好地理解您复制的代码......