使用Java中的2列更新表

时间:2014-07-22 03:08:29

标签: java sql sql-update

您好我有这个代码,当我尝试运行它时出错。

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)

以上是我尝试运行程序时显示的错误。

2 个答案:

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

简单解决方案是使用新语句