我一直在编写此代码,并且收到此语法错误,有人知道最新消息吗?

    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还是很新的,有人可以帮忙吗?谢谢 :)

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

我的表中确实有东西,三列和10行的数据

最佳答案

不能很好地解决空间问题。 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

关于vb.net - 更新语句中的SYNTAX错误Visual Basic,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19551657/

10-13 08:07