您好我有这个代码,当我尝试运行它时出错。
s.executeUpdate("UPDATE [salesRecord] SET [backOrder] = 'backOrder'," +
" [quantity] ='"+ conDiff +"'" +
"WHERE [productID] = '" + s1 +"' AND [orderNumber] = '"+valueOrder+"' " );
此代码的目的是在未交付所有项目时将订单设置为后退订单。我想通过使用productID和orderNumber设置我在哪里寻找该项来指定我将更新的产品。
java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver]
Too few parameters. Expected 1.
at sun.jdbc.odbc.JdbcOdbc.createSQLException(Unknown Source)
以上是我尝试运行程序时显示的错误。
答案 0 :(得分:0)
Try the following
让backOrder,conDiff,s1,valueOrder为变量。
s.executeUpdate("UPDATE [salesRecord] SET [backOrder] = '"+backOrder+"',[quantity] ='"+ conDiff +"' WHERE [productID] = '" + s1 +"' AND [orderNumber] = '"+valueOrder+"' " );
答案 1 :(得分:0)
您编写的查询未使用任何参数,但错误消息显示它正在预期。这意味着您的“ s ”可能正在从其他地方重用,即使用参数。
看到你正在使用Java,我认为 s 是java.sql.PreparedStatement或类似的,并且使用 s.setXXX(parameterIndex,价值方法。
更多详细信息,请参阅http://docs.oracle.com/javase/7/docs/api/index.html
简单解决方案是使用新语句。