2011-04-11 95 views
0

我正在为调用构建一个投票系统,并试图在VB中构建它。到目前为止,这是我的:VB应用程序中的NullReferenceException错误?

Dim con As New OleDb.OleDbConnection 
    Dim dbProvider As String 
    Dim dbSource As String 

    dbProvider = "PROVIDER=Microsoft.Jet.OLEDB.4.0;" 
    dbSource = "Data Source = C:\PhonePoll.mdb" 

    con.ConnectionString = dbProvider & dbSource 

    con.ConnectionString = "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source = C:\PhonePoll.mdb" 

    con.Open() 

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

    If inc <> -1 Then 

     Dim cb As New OleDb.OleDbCommandBuilder(da) 
     Dim dsNewRow As DataRow 

     dsNewRow = ds.Tables("voting").NewRow() 
     dsNewRow.Item("voted") = RadioButton1.Checked.ToString 
     dsNewRow.Item("voted") = RadioButton2.Checked.ToString 
     dsNewRow.Item("voted") = RadioButton3.Checked.ToString 
     dsNewRow.Item("voted") = RadioButton4.Checked.ToString 

     ds.Tables("voting").Rows.Add(dsNewRow) 

     da.Update(ds, "voting") 

     MsgBox("New Record added to the Database") 

    End If 

    MsgBox("Phone call has been logged") 

    con.Close() 

此代码包含在“记录呼叫”按钮。在表格上,有四个单选按钮,全部都有不同的文本值,应该输入到“投票”表中。

我的问题是,当我选择一个单选按钮,然后单击“录音键”,它则显示此错误:

NullReferenceException: Object reference not set to an instance of an object.

显示上线

dsNewRow = ds.Tables("voting").NewRow() 

我”这个错误我不知道我做错了什么。

欢呼声!

回答

2

我假设在实际的代码中,您没有将数据集的SQL和Fill()方法注释掉,这只是上面代码中的一个错字 - 对吧?如果我错了,那块代码被注释掉了,那么你的数据集是空的,这是问题...

+0

我不明白,我评论他们出来,因为它没有摆在首位的工作。我现在取消注释他们,它的作品?谢谢您的帮助! – mickburkejnr 2011-04-11 22:30:39

0

不要把所有的代码放在一行上 - 将它分开。 ds为null或 ds.Tables(“voting”)返回空值,但永远不会知道,因为它是暂时的。你可以不检查它,因为你没有把它存储在一个变量

这就是为什么我尝试从来没有要求过久:

A B = me.foo.bar.baz.fuz.bom ()< - 只是要求麻烦!

0

ds是null,其未初始化

也许,如果你解除引用:

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