我一直在编写此代码,并且收到此语法错误,有人知道最新消息吗?
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/