VB.NET - OleDbCommand的查询被示出在线路 cmd.ExecuteNonQuery语法错误
问题描述:
我正在语法错误在下面插入查询()VB.NET - OleDbCommand的查询被示出在线路 cmd.ExecuteNonQuery语法错误
我已经检查的参数的数据类型和所提供的值。他们是正确的。
带后缀'CB'的变量代表Combobox。我最初使用 itemCB.selectedItem.toString。但现在改为itemCB.text。但无论如何,两者都不起作用。
很长时间无法找出语法错误。 有人可以帮助我。
Dim cmdText As String
cmdText = "insert into tblSales(salesDate,item,type,container,quantity,amount,custId,custName,custPhNo,custPlace,custEmail,remarks) values(?,?,?,?,?,?,?,?,?,?,?,?)"
Dim cmd As New OleDbCommand
cmd.CommandText = cmdText
cmd.Connection = MainForm.con
cmd.Parameters.AddWithValue("@salesDate", salesDate.Value.ToString("dd-MM-yyyy"))
cmd.Parameters.AddWithValue("@item", itemCB.Text)
cmd.Parameters.AddWithValue("@type", typeCB.Text)
cmd.Parameters.AddWithValue("@container", containerCB.Text)
cmd.Parameters.AddWithValue("@quantity", CInt(qty.Text))
cmd.Parameters.AddWithValue("@amount", CInt(amount.Text))
cmd.Parameters.AddWithValue("@custId", CInt(custId.Text))
cmd.Parameters.AddWithValue("@custName", custName.Text)
cmd.Parameters.AddWithValue("@custPhNo", custPhNo.Text)
cmd.Parameters.AddWithValue("@custPlace", custPlace.Text)
cmd.Parameters.AddWithValue("@custEmail", custEmail.Text)
cmd.Parameters.AddWithValue("@remarks", remarks.Text)
cmd.ExecuteNonQuery()
答
您正在使用哪个数据库?,Insert语句的语法对我来说感觉很陌生。我期望的东西在:
cmdText = "insert into tblSales(salesDate,item,type,container,quantity,amount,custId,custName,custPhNo,custPlace,custEmail,remarks) values(@salesDate,@item,@type,@container, @quantity,@amount,@custId,@custName,@custPhNo,@custPlace,@custEmail,@remarks)"
标记在哪个位置是每个参数。
答
我使用MS Access作为我的后端数据库,其中'容器'是关键字。作为我的表列,被命名为容器,它引发了这个错误。
cmd.Parameters.AddWithValue(“@ container”,containerCB.Text)==>错误在这里。
现在我改变了列名
语法错误得到解决
“containerType”我使用MSACCESS数据库 – sabari