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)" 

标记在哪个位置是每个参数。

+0

“containerType”我使用MSACCESS数据库 – sabari

我使用MS Access作为我的后端数据库,其中'容器'是关键字。作为我的表列,被命名为容器,它引发了这个错误。

cmd.Parameters.AddWithValue(“@ container”,containerCB.Text)==>错误在这里。

现在我改变了列名

语法错误得到解决