2012-01-27 28 views
0

netbeans 6.9でstruts 1.3.8フレームワークを使用していて、preparedStatementを使用してデータベースの値を更新したいとします。それはmewに(パラメータ3に値が指定されていない)エラーを与え続け、そのパラメータが何であるのかわからないので、idを定義して値を設定します。私はあなたの努力を感謝しており、それを手伝ってくれることを願っています。テーブル更新時のエラー[パラメータ3に値が指定されていません]

これは私のコードです:

try{ 
    // update the item Qyt in the item table after checking it out 
    PreparedStatement ps2 = (PreparedStatement) con.prepareStatement("UPDATE item SET itemQyt=? WHERE itemID=?" 
      + " VALUES (?,?)"); 
    ps2.setInt(1, newQuantity); 
    ps2.setInt(2, itemID); 
    int updateRows = ps2.executeUpdate(); 
    ps2.close(); 

} catch (Exception e) { 
    errors.add("SQLUpdatingItem", new ActionMessage("errors.SQLUpdatingItem")); 
    System.out.println("ERROR Updating : Did not Update the itemQyt in the item table which the itemId is : " + itemID + " and the new Qyt is :" + newQuantity + " " + e); 
} 

と、これはエラーMSGです:

更新エラー:のitemIdを 項目テーブルにitemQytを更新しなかったです。7、新しいQytは次のとおりです。9 java.sql.SQLException:いいえ パラメータ3に指定された値

答えて

0

値の部分を削除します。 UPDATEステートメントには値の部分はありません。

"UPDATE item SET itemQyt=? WHERE itemID=?" 

(VALUESはINSERT文の一部である。)

+0

あなたに感謝し、それが動作することが^^ました\ O/ はそんなに –

+0

@JodiAbotをありがとう[受け入れることができます] (http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work)他の人が解決策を見つけるのを助ける正しい答え –

1

渡す文字列prepareStatementには4つのプレースホルダー(?)が含まれていますが、そのうちの2つのみ(setInt)の値を提供しています。

+0

私は は、私がやった –

関連する問題