我有以下代码将数据输入到我的Access数据库,但是出现以下错误。
Query input must contain at least one table or query.
我究竟做错了什么?这是他们提到这些行的代码部分。
Private Sub EditAddButton_Click(sender As Object, e As EventArgs) Handles EditAddButton.Click
Dim conn As New OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\*******************;Jet OLEDB:Database Password=************;")
Dim insertsql As String
Try
insertsql = "INSERT INTO RepairOrders" & _
"(ROOtherInfo, ROJobType, ROJobTime, RODelPicDate, RONo)" & _
"VALUES (@other, @type, @time, @delpic, @jobno) WHERE ROJobNo = @jobno"
Dim cmd As OleDb.OleDbCommand = New OleDb.OleDbCommand(insertsql, conn)
cmd.Parameters.AddWithValue("@other", AddOtherText.Text)
cmd.Parameters.AddWithValue("@type", AddTypeCombo.Text)
cmd.Parameters.AddWithValue("@time", AddTimeCombo.Text)
cmd.Parameters.AddWithValue("@delpic", AddDatePick.Value.Date.ToString)
cmd.Parameters.AddWithValue("@jobno", AddJobText.Text)
conn.Open()
cmd.ExecuteNonQuery()
MessageBox.Show("Booking Added!")
conn.Close()
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
我已经用星号替换了某些信息,以涵盖一些敏感信息。
现在我收到语法错误:(
Dim conn As New OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\*********************************;Jet OLEDB:Database Password=***********;")
Dim insertsql As String
Try
insertsql = "UPDATE RepairOrders SET ROOther = @other, SET RONo = @jobno, SET ROJobType = @type, SET ROJobTime = @time, SET RODelPicDate = @delpic WHERE RONo = @jobno"
Dim cmd As OleDb.OleDbCommand = New OleDb.OleDbCommand(insertsql, conn)
cmd.Parameters.AddWithValue("@other", AddOtherText.Text)
cmd.Parameters.AddWithValue("@type", AddTypeCombo.Text)
cmd.Parameters.AddWithValue("@time", AddTimeCombo.Text)
cmd.Parameters.AddWithValue("@delpic", AddDatePick.Value.Date.ToString)
cmd.Parameters.AddWithValue("@jobno", AddJobText.Text)
conn.Open()
cmd.ExecuteNonQuery()
MessageBox.Show("Booking Added!")
conn.Close()
Catch ex As Exception
MsgBox(ex.Message)
End Try
看来您有太多的SET语句,并且OleDb需要'?' 对于参数,您必须注意它们的数量以及它们的指定顺序。这有点清理,请查看OLEDB参数化查询以获取更详尽的示例。
Try
insertsql = "UPDATE RepairOrders
SET ROOther = ?
, RONo = ?
, ROJobType = ?
, SET ROJobTime = ?
, SET RODelPicDate = ?
WHERE RONo = ?"
Dim cmd As OleDb.OleDbCommand = New OleDb.OleDbCommand(insertsql, conn)
cmd.Parameters.AddWithValue("?", AddOtherText.Text)
cmd.Parameters.AddWithValue("?", AddJobText.Text)
cmd.Parameters.AddWithValue("?", AddTypeCombo.Text)
cmd.Parameters.AddWithValue("?", AddTimeCombo.Text)
cmd.Parameters.AddWithValue("?", AddDatePick.Value.Date.ToString)
cmd.Parameters.AddWithValue("?", AddJobText.Text)
conn.Open()
cmd.ExecuteNonQuery()
MessageBox.Show("Booking Added!")
conn.Close()
Catch ex As Exception
MsgBox(ex.Message)
End Try
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句