【发布时间】:2015-08-08 08:45:15
【问题描述】:
这是我在调试时收到的错误。
{"Syntax error in string in query expression ''Laptop);'."}
这是我没有正常工作的 SQL 语句。无论我做什么,它似乎都会添加一个随机的 .在声明的末尾,我不知道它为什么这样做。
Sql = "INSERT INTO Devices ( [Asset Number], [Service Tag], Manufacturer, ModelName, Location, Room, Cart, [Purchase Date], Department, [Device Type] ) VALUES('" & AssetNum & "','" & ServTag & "','" & Manu & "','" & Model & "','" & Location & "','" & Room & "','" & Cart & "','" & PurchDate & "','" & Department & "','" & DeviceType & ");"
这是我所做的声明,效果很好。这只是一个长字符串值。我需要上面的变量工作的原因是因为它们链接到文本框,因此用户可以输入数据。
Sql = "INSERT INTO Devices ( [Asset Number], [Service Tag], Manufacturer, ModelName, Location, Room, Cart, [Purchase Date], Department, [Device Type] )VALUES (10, 1234, 'Dell', 'Latitude E6410', 'John McIntire', 100, 0, '5/17/2015', 'Technology', 'Laptop');"
所以是的,基本上我被卡住了,无法弄清楚为什么第一个查询不起作用。我已经坚持了一段时间了,真的需要一些帮助。
这就是我执行查询的方式。
cmd = New OleDb.OleDbCommand(Sql)
cmd.Connection = dbConn
cmd.ExecuteNonQuery()
【问题讨论】:
-
这里去掉前导单引号:'" & DeviceType
-
@jarlh 他可能应该添加一个尾随单引号来关闭第一个引号,因为 DeviceType 可能是一个字符串。
-
在
DeviceType之后添加一个单引号,如下所示:"','" & DeviceType & "');"或者使用参数查询,不要理会带引号的字符串值。 -
What is wrong...您正在连接 SQL 而不是使用参数。使用参数不会发生额外/缺失的滴答声(以及其他更具破坏性的事情)。 -
有人说小鲍比桌吗?