2015-04-15 58 views
1

我必須更新活動中的一行表。 我使用延伸SQLiteOpenHelper的我的類DatabaseHelper的方法。 這裏是屬於類DatabaseHelper的方法:我需要通過三個參數如何更新SQLite數據庫中一行的值

public void updateQuantitaProdotto(SQLiteDatabase db,String Nome, String Quantita) { 
     db.execSQL("update " + ProdottiTable.TABLE_NAME + " set " + ProdottiTable.QUANTITA + "= " + Quantita + "where " 
       + "Nome = '" + Nome + "'"); 

    } 

,但我不知道是哪個值作爲給第一個參數。 當我想要創建一個SQLiteDatabase對象時,我在編輯器上看到一個錯誤,也許我無法使用它。

public void afterTextChanged(Editable s) { 
       try { 
        if(quantitaSceltaEditText.getText().toString().isEmpty()==false) { 
         int quantitaSceltaInt = Integer.parseInt(quantitaSceltaEditText.getText().toString()); 
         String prezzoTotale = String.valueOf(String.format("%.2f", (calcoloPrezzoTotale()))); 

         prezzoTotateTextView.setText(prezzoTotale); 
        var.aggiornaQuantitaProdotto(db,nomeTextView.getText().toString(),String.valueOf(nuovaQuantita));  //which value for db? 
        } 
        else 
         prezzoTotateTextView.setText("0,00"); 
       } 
       catch (Exception e) {};` 
      } 

回答

0

如果此方法是您DatabaseHelper類裏面,你不應該需要db通過從活動。

此外,您有一個串聯問題,應在=,whereNome之間有空格。

應該是這樣的:從您的活動

//Notice no db in the parameters for the method 
public void updateQuantitaProdotto(String Nome, String Quantita) { 

     //open the database if not done so already    
     SQLiteDatabase db = this.getWritableDatabase(); 

     //notice the extra spaces below 
     db.execSQL("update " + ProdottiTable.TABLE_NAME + " set " + ProdottiTable.QUANTITA + " = " + Quantita + " where " 
       + " Nome = '" + Nome + "'"); 

     db.close(); //close the db if not needed anymore 
    } 

呼叫而不db參數:

//no value for db needed 
var.aggiornaQuantitaProdotto(nomeTextView.getText().toString(),String.valueOf(nuovaQuantita));      
+0

赤新代碼 – Ptr

+0

我不能,因爲我得到一個錯誤 – Ptr

+0

@Ptr嘗試在答案中的代碼,並看看你是否得到一個錯誤。 –