【发布时间】:2014-04-08 13:01:57
【问题描述】:
我正在做我最后一年的项目,我正在做一个基于 VB.net 和 Access 数据库的库存控制系统。我在调试系统时不断出现此错误。
System.Data.dll 中出现“System.Data.OleDb.OleDbException”类型的未处理异常 附加信息:INSERT INTO 语句中的语法错误。
以下是我的代码中存在错误的部分。表单中的这段代码允许我将数据添加到数据库中。
cmd.CommandText = "INSERT INTO Product(Item ID, Item Name, Item Type, Quantity, Min Shelf Stock, Purchase Price, Note) " & _
" VALUES (" & Me.txtItemID.Text & ",'" & Me.txtItemName.Text & "','" & _
Me.cboItemType.Text & "','" & Me.txtQuantity.Text & "','" & _
Me.txtMinShelfStock.Text & "','" & Me.txtPurchasePrice.Text & "','" & _
Me.txtNote.Text & "')"
cmd.ExecuteNonQuery()
【问题讨论】:
-
使用参数避免SQL注入。您需要将字段名称括在括号中并在其中包含空格:[Item ID]。
-
您需要的方括号是方括号 [Item ID]、[Item Name] 等...正如 Lars 指出的那样,使用 Params 或者您对 SQL 注入持开放态度......
-
请您用解决方案重新编写代码。我已经尝试过,但仍然出现错误。