【发布时间】:2014-01-01 14:05:22
【问题描述】:
我正在尝试从 VB.NET 的 Access (*.mdb) 数据库中的表中删除所有数据,然后在其中重新插入新数据,但是在执行时出现错误“INSERT INTO 语句中的语法错误”以下代码:
Imports System
Imports System.Data
Imports System.Data.SqlClient
...
'test.mdb file
'with a table "MyTable"
'with two fields:
'"name" (Memo), "value" (Memo)
Dim con As New OleDb.OleDbConnection
Dim dbProvider As String
Dim dbSource As String
Dim ds As New DataSet
Dim da As OleDb.OleDbDataAdapter
Dim sql As String
dbProvider = "PROVIDER=Microsoft.Jet.OLEDB.4.0;"
dbSource = "Data Source = C:\Users\Max\Desktop\test.mdb"
con.ConnectionString = dbProvider & dbSource
con.Open()
sql = "SELECT * FROM MyTable"
'select data from database, fill and clear dataset to get the table schema
da = New OleDb.OleDbDataAdapter(sql, con)
da.Fill(ds, "MyTable")
ds.Clear()
'add a new row in the dataset
Dim dsNewRow As DataRow = ds.Tables("MyTable").NewRow()
dsNewRow.Item("name") = "TESTNAME"
dsNewRow.Item("value") = "TESTVALUE"
ds.Tables("MyTable").Rows.Add(dsNewRow)
'update the database
Dim objCommandBuilder As New OleDb.OleDbCommandBuilder(da)
da.Update(ds, "MyTable")
ds.Dispose()
da.Dispose()
con.Close()
con.Dispose()
【问题讨论】:
-
如果您将字段名称,“name”更改为“fld1”,“value”更改为“fld2”,并修改您的 VB.Net 代码以使用这些新的字段名称,您是否仍然明白错误?或者可能是另一个错误?
-
更改字段名称的代码它的工作,但我不知道为什么!!!!
-
Name和Value都是 reserved words,因此不是 Access db 对象名称的好选择。
标签: vb.net ms-access dataset oledb oledbcommand