【问题标题】:You have an error in your SQL syntax: syntax to use near 'ID="" at line 1 [closed]您的 SQL 语法有错误:在第 1 行的 'ID="" 附近使用的语法 [关闭]
【发布时间】:2020-03-10 06:47:46
【问题描述】:

我一直收到这个错误

'ID="" 在第 1 行

这是我的代码:

        public void DeleteRecord(){
        String sql="delete from  issueditems where Item ID=?";
    try{

      pst=conn.prepareStatement(sql);
      pst.setString(1, jt4.getText());
      pst.execute();
    }catch(Exception e){
        JOptionPane.showMessageDialog(null, e);
    }
  }

【问题讨论】:

  • 看起来代码和错误消息不合适。请添加完整的堆栈跟踪
  • 你有触发器吗?
  • 可能 jt4.getText 返回 null 或空字符串
  • 对,我确实在单击操作按钮(将其删除)后设置了我的 jt4 setText(""),现在我收到了新错误:语法错误:第 1 行的 'ID='10006272" 附近
  • “Item”和“ID”之间似乎有一个空格字符 - 可能您的 SQL 语句应该是 "delete from issueditems where ItemID=?"

标签: java mysql sql database


【解决方案1】:

检查 jt4.getText()null 还是 empty

检查 ID 字段数据类型是 intvarchar

如果 ID 是 int 类型。尝试修改pst.setString(1, jt4.getText())pst.setInt(1,Integer.parseInt(jt4.getText()))

【讨论】:

  • 把它改成 varchar 现在我忘记了,现在我得到了新的错误:语法错误:在第 1 行接近 'ID='10006272"
  • 你不应该改变你的数据库列类型,你应该修复你的代码,进行一些验证和转换,以确保你的代码总是传递给查询一个有效的,而不是空的数字。
【解决方案2】:

我不知道您使用的是什么数据库,但我也不知道“项目 ID”是有效列名的任何数据库。该列可能被命名为“ItemID”或“Item_ID”,您需要相应地更改您的 SQL 语句 - 要么

delete from  issueditems where ItemID=?

delete from  issueditems where Item_ID=?

使用您当前的语句 (delete from issueditems where Item ID=?),数据库会看到列名“Item”并需要一个运算符('='、''、'LIKE' 或类似的东西),但会找到另一个标识符“ID”,不知道如何处理这个标识符。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-28
    • 2023-02-13
    • 1970-01-01
    • 1970-01-01
    • 2013-08-11
    • 1970-01-01
    相关资源
    最近更新 更多