2017-08-03 74 views
0

我有一個表,其中包含兩列代碼,其中有所有的條形碼和VARIABLE在開始時初始化爲0。當我掃描條形碼時,我必須更新表格,當我掃描兩次VARIABLE = 2時,我必須添加1到變量。... 我試圖做它,但它不起作用。任何人都可以幫助?更新表SQL

String query = "INSERT INTO TABLE (CODE,VARIABLE) VALUES(?,?) ON DUPLICATE KEY UPDATE VARIABLE='"+VARIABLE+1+"'"; 

       try { 
        if (connect != null) { 
          PreparedStatement statement = connect.prepareStatement(query); 
         statement.setString(1, "%" + res + "%"); 
         statement.setInt(2,VARIABLE); 

         r=statement.executeQuery(); 
         if (r.next()) { 
          message = "Updated"; 
          String code = r.getString("CODE"); 
          int var = r.getInt("VARIABLE"); 
          INFOSOMME.setText(message); 
          INFOSOMME.setText(code); 
          INFOSOMME.setText(var); 
         } else { 
          message = "Error"; 
          INFOSOMME.setText(message); 
         } 
        } else { 
         message = "Error in connection with SQL server"; 
         INFOSOMME.setText(message); 

        } 

       } catch (SQLException e) { 
        etat = false; 
        message = "Got an exception!"; 
        System.err.println(e.getMessage()); 
       } 


      } 
     }); 

ERROR:9月8日至3日:43:44.966 30393-30393/com.example.practicas.myapplication W/System.err的:Sintaxis incorrecta CERCA德拉言論報釜 'ON'。我試圖改變查詢字符串查詢=「插入到表(代碼,變量)值(?,0);」 +「更新TABLE SET VARIABLE = VARIABLE + 1代碼如何?」;我得到這個錯誤/System.err:executeQuery方法必須返回一個結果集。

+0

如果發生錯誤,發佈錯誤日誌? – akhilesh0707

+0

你試過VARIABLE + 1把()所以(VARIABLE + 1)嗎? – cotnic

+0

給[這個答案](https://stackoverflow.com/a/2718352/469080)一個去,我認爲這是你需要的。基本上'INSERT或IGNORE'你的條形碼,然後'更新'在隨後的聲明中的價值。 –

回答

0

嘗試執行以下SQL命令:

String query = "INSERT INTO TABLE (CODE,VARIABLE) VALUES(?,?) ON DUPLICATE KEY UPDATE VARIABLE=(VARIABLE+1)"; 
+0

感謝您的回答,但我仍然得到相同的錯誤 – Mimi

+0

再次嘗試而不是「VARIABLE =(VARIABLE + 1)」您輸入「VARIABLE =(VALUES(VARIABLE)+1)」 – cotnic

+0

同樣的錯誤 – Mimi

0

我已經發布的評論,但更好地在這裏,我想:

executeNonQuery

更新和插入不返回數據,所以你不能使用executeQuery(它不會返回除受影響的行數之外的信息)

+0

@Mimi做到了工作?如果是這樣,請將其標記爲已接受的答案,如果沒有,請通知我們以進一步幫助您 –

+0

非常感謝您的回答。我改變了查詢字符串查詢=「更新表設置VARIABLE = VARIABLE + 1在哪裏代碼像?」;它的工作原理。沒有更多的錯誤 – Mimi