使用以下代码运行vb应用程序。我的'INSERT INTO'sql查询一直出错,有谁能看到我做错了什么?这是错误 - INSERT INTO语句中的语法错误。
connetionString = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source = C:\Users\Dave\Documents\joblist.mdb;"
connection = New OleDb.OleDbConnection(connetionString)
Sql = "INSERT INTO jobList (StaffID, staffName, staffLastName, note, fault, section, techID, jobcomplete) VALUES ('" & staffid & "','" & staffFN & "','" & staffLN & "','" & staffNotes & "','" & staffFault & "', '" & staffSection & "', '" & techId & "','" & ava & "')"
connection.Open()
oledbAdapter.UpdateCommand = connection.CreateCommand
oledbAdapter.UpdateCommand.CommandText = Sql
oledbAdapter.UpdateCommand.ExecuteNonQuery()
connection.Close()
Me.JobListTableAdapter.Fill(Me.JoblistDataSet2.jobList)
答案 0 :(得分:0)
我认为您应该使用InsertCommand
而不是UpdateCommand
属性,因为您要插入。
oledbAdapter.InsertCommand.CommandText = "INSERT INTO jobList (StaffID, staffName, ....
请注意,您已打开SQL注入,而应使用Parameters
。您还应该使用Using
语句来确保即使出错也会关闭连接。
答案 1 :(得分:0)
Note
和Section
为reserved words in Jet SQL
你需要用方括号
Sql = "INSERT INTO jobList (StaffID, staffName, staffLastName, [note], fault, " +
"[section], techID, jobcomplete) VALUES (......)"
这是语法错误的来源,但是......
除此之外,你有很多问题:
staffID
和techID
似乎是数据库中的数字字段,但是
你把它们的值放在像字符串这样的单引号中。如果它们是
数字你会在那里得到另一个可能的错误。