更新语句Visual Basic中的语法错误

时间:2013-10-23 20:28:17

标签: vb.net visual-studio-2010 syntax-error oledbdataadapter

我一直在研究这段代码,并且我得到了这个语法错误,有人知道什么了吗?

    Dim sql As String                                  
    Dim con As New OleDb.OleDbConnection               
    Dim da As OleDb.OleDbDataAdapter                   
    Dim ds As New DataSet                               


    con.ConnectionString = "PROVIDER = Microsoft.Jet.OLEDB.4.0; Data Source = G:\school\Thespellingbee\Resources\Spelling Bee1.mdb"   
    con.Open()                                         
    sql = "SELECT * FROM [Words + Definitions]"         
    da = New OleDb.OleDbDataAdapter(sql, con)           

    da.Fill(ds, "Words + Definitions")                  
    con.Close()                                         

    Dim cb As New OleDb.OleDbCommandBuilder(da)         

    ds.Tables("Words + Definitions").Rows(0).Item(1) = WordTextBox.Text
    ds.Tables("Words + Definitions").Rows(0).Item(2) = DescriptionTextBox.Text

    da.Update(ds, "Words + Definitions") 
    MsgBox("It's working", MessageBoxButtons.OK)



End Sub

我知道我越来越近了,但是在da.update部分的最后我得到了这个问题,即使对vbasic来说还是相当新的,任何人都可以帮忙吗?谢谢:))


好的,所以我做了hans告诉我要做的事情,但现在当我到达结尾附近的ds.tables部分时,我得到这个“对象引用未设置为对象的实例。”。数据库位置是正确的,文本框是正确的名称,那么什么可能是空引用?


我的表中包含内容,三列和10行数据

1 个答案:

答案 0 :(得分:0)

没有合适的空间。 ds.Tables("Words + Definitions")为空。

您可以在选择查询中为表名设置别名:

sql = "SELECT * FROM [Words + Definitions] [wd]"
...
da.Fill(ds, "wd") 

然后访问:

ds.Tables("wd").Rows(0).Item(1) = WordTextBox.Text
ds.Tables("wd").Rows(0).Item(2) = DescriptionTextBox.Text

尽管如此,您始终可以按索引访问该表。

ds.Tables(0).Rows(0).Item(1) = WordTextBox.Text
ds.Tables(0).Rows(0).Item(2) = DescriptionTextBox.Text