如何在SQLite数据库中更新行的值

时间:2015-04-15 17:34:18

标签: android sqlite sql-update

我必须更新Activity中的一行表。 我使用我的课程DatabaseHelper扩展SQLiteOpenHelper的方法。 以下是属于类DatabaseHelper的方法:

 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) {};`
            }

1 个答案:

答案 0 :(得分: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));