这个问题已经在这里有一个答案:
我使用的方法db.update()
来更改表中的字段的值。当我插入新的值是与现有的和可能的呢?
public void Trasf() {
String value = Scegli.getText().toString();
cv.put(CTable.PREL, mI.getText().toString());
SQLiteDatabase db = mHelper.getWritableDatabase();
db.update(CTable.TABLE_NAME, cv, CTable.NO + " = ?", new String[] { value });
db.close();
}
}
不清楚自己想做的事,但也许是什么:
public void Trasf() {
String value = Scegli.getText().toString();
// add two strings or numbers together in the .put method
cv.put(CTable.PREL, mI.getText().toString() + " " + oldString); // for string
cv.put(CTable.PREL, int_new + int_old); // adding numbers
SQLiteDatabase db = mHelper.getWritableDatabase();
db.update(CTable.TABLE_NAME, cv, CTable.NO + " = ?", new String[] { value });
db.close(); }
}
该ContentValues对象只允许简单的值。
做计算,你必须自己编写SQL并调用execSQL:
public void Trasf() {
SQLiteDatabase db = mHelper.getWritableDatabase();
try {
db.execSQL("UPDATE " + CTable.TABLE_NAME +
" SET " + CTable.PREL + " = " + CTable.PREL + " + ?" +
" WHERE " + CTable.NO + " = ?",
new Object[] { mI.getText().toString(),
Scegli.getText().toString() });
} finally {
db.close();
}
}
更改
CTable.NO + " = ?"
至
CTable.NO + " = " + CTable.NO + " + ?"
你需要使用SELECT命令首先检索现有的值,然后在简历。
使用游标检索值,并将其存储在一个局部变量。
现有+新价值
现在,写你的更新语句。