我最近将数据库从访问权限更改为.mdf,现在我无法使代码生效。
我遇到的一个问题是这个错误“语法不正确”。
我尝试了不同的方法来尝试解决此问题,例如将括号括起来,移动逗号,放入空格,取出空格但我无法得到它。
如果有人能帮助我,我将非常感激。
我的代码是:
SqlStr = "INSERT INTO UserTimeStamp ('username', 'id') SELECT ('username', 'id') FROM Staff WHERE password = '" & passwordTB.Text & "'"
答案 0 :(得分:1)
假设您正在寻找用户名和id列,那么这不是正确的SQL语法。
主要问题是您的列名用单引号括起来,并且在您的select中括在括号中。尝试将其更改为:
SqlStr = "INSERT INTO UserTimeStamp (username, id) SELECT username, id FROM Staff WHERE password = '" & passwordTB.Text & "'"
这将像这样被发送到SQL:
INSERT INTO UserTimeStamp (username, id)
SELECT username, id
FROM Staff
WHERE password = 'some password'
答案 1 :(得分:0)
尝试将列名包装在方括号中,如下所示:
INSERT INTO employee ([FirstName],[LastName]) SELECT [FirstName],[LastName] FROM Employee where [id] = 1
编辑:同时删除所选字段周围的括号。
答案 2 :(得分:0)
我可能会看到很多问题。
不应引用列名,即INTO UserTimeStamp('username','id')应为INTO UserTimeStamp(用户名,id)
除非文字字符串,否则不应引用列字段。即SELECT('username','id')应该是SELECT username,id。
通过引用您的参数,您将使自己面临T-SQL注入的风险。如果您正在进行临时查询,则应考虑使用存储过程,或使用经过良好测试的函数来保护参数。
SqlStr =“INSERT INTO UserTimeStamp(username,id)SELECT username,id FROM Staff WHERE password =”+ MyQuoteFunction(passwordDB.Text);