我的问题是在da.Update(dt)。我收到OleDbException未处理。 INSERT INTO语句中的语法错误。奇怪的是它在我只保存了10件物品之前就已经运行了,而现在它根本没有完全混乱。感谢您的帮助。
Dim dt As New DataTable
Dim ds As New DataSet
con.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source= C:\MyComplete.accdb;Persist Security Info=False;"
con.Open()
MsgBox("here")
ds.Tables.Add(dt)
Dim da As New OleDbDataAdapter
da = New OleDbDataAdapter("SELECT * FROM DealerReview", con)
da.Fill(dt)
Dim newRow As DataRow = dt.NewRow
newRow.Item(1) = User
newRow.Item(2) = Associate
newRow.Item(3) = "1"
newRow.Item(4) = Time
newRow.Item(5) = Hold
newRow.Item(6) = GreetingR
newRow.Item(7) = GreetingA
newRow.Item(8) = GreetingO
newRow.Item(9) = GreetingTs
newRow.Item(10) = GreetingG
newRow.Item(11) = holdUpdate
newRow.Item(12) = LookupSize
newRow.Item(13) = DlyD
newRow.Item(14) = SiPrice
newRow.Item(15) = SiDoorPrice
newRow.Item(16) = TBrand
newRow.Item(17) = TModel
newRow.Item(18) = SeveralChoices
newRow.Item(19) = Financing
newRow.Item(20) = Benefits
newRow.Item(21) = Apt
newRow.Item(22) = ITime
newRow.Item(23) = AssociateScore
newRow.Item(24) = hms
newRow.Item(25) = ymd
newRow.Item(26) = ElapsedTime
dt.Rows.Add(newRow)
Dim cb As New OleDbCommandBuilder(da)
cb.GetInsertCommand()
da.Update(dt)
MsgBox("Saved")
con.Close()
答案 0 :(得分:0)
当您的项目的计数和/或数据类型与您要写入的表的列定义不匹配时,这是您得到的错误。还有其他可能性,但既然你提到你添加了更多项目,并且你没有向我们展示表格定义,那么这似乎是最有可能的。
您不能只向数据库命令添加更多项目(列),它们必须匹配您正在读取/写入的表格列。