【问题标题】:Missing semicolon (;) at end of SQL statement. Semicolon already existsSQL 语句末尾缺少分号 (;)。分号已经存在
【发布时间】:2013-11-20 19:23:35
【问题描述】:

当我运行此代码时,我不断收到此错误Missing semicolon (;) at end of SQL statement.

Dim cmd3 As OleDbCommand = New OleDbCommand("INSERT INTO Tickers (Quarter_Balance_Sheets) VALUES (Scrapalbe) WHERE Ticker = A;", con)
cmd3.ExecuteNonQuery()

我做错了什么?

【问题讨论】:

    标签: sql vb.net where-clause insert-into oledbcommand


    【解决方案1】:

    已编辑..

    对不起。再次阅读后,您不能在 INSERT 语句上使用 WHERE,也不能松开 WHERE 子句或进行 UPDATE 语句。

    INSERT INTO ... WHERE 不是有效的查询。

    如果您发布的插入具有正确的值和列,则更新应该是:

    Dim cmd3 As OleDbCommand = New OleDbCommand("UPDATE Tickers SET Quarter_Balance_Sheets = 'Scrapalbe' WHERE Ticker = 'A';", con)
    cmd3.ExecuteNonQuery()
    

    【讨论】:

    • UPDATE 语句是什么样的?
    • 谢谢。首先考虑是否需要插入或更新。然后编写查询。
    • 哇,真不敢相信我错过了
    【解决方案2】:

    缺少引号WHERE Ticker = 'A'VALUES ('Scrapalbe')

    编辑:@Engerlost 是对的,where 不适用于insert;你仍然需要引号,但完全放弃where...

    【讨论】:

    • 我试过你的建议,我得到了同样的错误。 Missing semicolon (;) at end of SQL statement.
    • @LarsTech 我正在使用 Microsoft Access。是这个意思吗?
    • @EricPetroelje 我在尝试WHERE Ticker = 'A'VALUES ('Scrapalbe') 时仍然遇到同样的错误
    【解决方案3】:

    您的查询中的问题是您在插入语句中使用了 where。

    查询是,

    insert into Tablename (val1, val2, ...) values(val1, val2,....)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-28
      • 1970-01-01
      • 1970-01-01
      • 2012-12-16
      • 2019-04-18
      相关资源
      最近更新 更多