SQLException"没有为参数3指定值"

Mic*_*ugo 3 java mysql

我没有收到编辑按钮的错误,但是当我按下保存按钮时我收到了它.好像我的所有参数都在那里,但也许我错过了一些东西.我一遍又一遍地梳理了保存按钮的代码,但似乎无法理解什么是错的.我想要它做的是根据部件号和截止日期的用户输入覆盖特定记录的数据.

 PreparedStatement myquery3;             
 String InsertQuery3 = " UPDATE TABLE AllRecords SET DueDate = ? WHERE WorkOrderID = ?"
                        + "values(?,?)";                    
 myquery3 = conn.prepareStatement(InsertQuery3);
 myquery3.setString(1, duedate);
 myquery3.setString(2, workorder);
 myquery3.execute();
Run Code Online (Sandbox Code Playgroud)

Ste*_*ike 5

这就是问题:

String InsertQuery2 = "UPDATE TABLE Sample SET PartNumber = ? WHERE WorkOrderID = ?"
                            + "values(?,?)";                    
                myquery2 = conn.prepareStatement(InsertQuery2);
                myquery2.setString(1, partnumber);
                myquery2.setString(2, workorder);
                myquery2.execute(); 
Run Code Online (Sandbox Code Playgroud)

您定义了4个占位符,但只设置了两个占位符.

你犯了同样的错误InsertQuery3.

作为旁注.正确的更新sql看起来像:update table fubar set col1 = ? where id = ?

values 是用来 insert

  • values子句甚至不是有效的SQL.这应该是INSERT的一部分,而不是UPDATE. (2认同)