语法错误不正确,

时间:2013-12-19 16:08:55

标签: sql syntax mdf

我最近将数据库从访问权限更改为.mdf,现在我无法使代码生效。

我遇到的一个问题是这个错误“语法不正确”。

我尝试了不同的方法来尝试解决此问题,例如将括号括起来,移动逗号,放入空格,取出空格但我无法得到它。

如果有人能帮助我,我将非常感激。

我的代码是:

SqlStr = "INSERT INTO UserTimeStamp ('username', 'id') SELECT ('username', 'id') FROM Staff WHERE password = '" & passwordTB.Text & "'"

3 个答案:

答案 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)

我可能会看到很多问题。

  1. 不应引用列名,即INTO UserTimeStamp('username','id')应为INTO UserTimeStamp(用户名,id)

  2. 除非文字字符串,否则不应引用列字段。即SELECT('​​username','id')应该是SELECT username,id。

  3. 通过引用您的参数,您将使自己面临T-SQL注入的风险。如果您正在进行临时查询,则应考虑使用存储过程,或使用经过良好测试的函数来保护参数。

    SqlStr =“INSERT INTO UserTimeStamp(username,id)SELECT username,id FROM Staff WHERE password =”+ MyQuoteFunction(passwordDB.Text);