我必须更新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) {};`
}
答案 0 :(得分:0)
如果此方法位于DatabaseHelper
课程内,则无需从活动中传入db
。
此外,您遇到了连接问题,=
,where
和Nome
之间应该有空格。
它应该是这样的:
//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));