1

我一直在处理这段代码,我得到了这个语法错误,有人知道怎么回事吗?

    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 行充满数据

4

1 回答 1

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
于 2013-10-23T22:23:30.367 回答