2016-10-11 3 views
1

データベースには一定の数量のアイテムがあります。私は入力量(qtyPurchased)で更新するためにその数量が必要です。たとえば、アイテムは50数量を持つ新しい数量がコードでただし、55を返す必要がありますので、私はそれから、5を購入し、私が持っているそれだけでこれは私が持っているものである5.更新アイテムの総数はJavaデータベース

返します

public void purchased(int qtyPurchased) throws SQLException { 
    // TODO: Update the ProductsDB table's quantity for this 
    // object's product code. 
    try (Connection conn = SimpleDataSource.getConnection()) { 
     try (PreparedStatement stat = conn.prepareStatement(
       "UPDATE ProductsDB SET Quantity = ? WHERE Product_Code = ?")) { 
      stat.setInt(1, qtyPurchased); 
      stat.setString(2, productCode); 
      stat.execute(); 
     } 
    } 

} 

私はしようとしました:

stat.setInt(1, qty + qtyPurchased); 

いつもエラーが発生します。助けてください!ありがとう

+2

SQLクエリで数量を増やしてみませんか? ( 'UPDATE ProductsDB SET Quantity = Quantity +?WHERE Product_Code =?')私はテストしていませんが、うまくいくはずです – Dorian

+1

何が原因ですか? stacktraceを投稿できますか? 「qty」はどこから来たのですか? – eltabo

+0

@ドリアンの答えは正しいです。今は、常に数量を現在の数量* plus * qtyPurchasedの代わりにqtyPurchasedの値に設定しています。 – Aquarelle

答えて

2

あなたは数量を増やし、その増分値を以下のように更新する必要があります。

もう1つのオプションは、数量を取得して変数に格納し、それを増分してdBに送信することです。これは、あなたのアプリケーションの他の領域でvarに格納されている新しい値を使用できるという利点があります。

関連する問題