我使用方法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();
}
}
答案 0 :(得分:1)
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();
}
}
答案 1 :(得分:0)
更改
CTable.NO + " = ?"
到
CTable.NO + " = " + CTable.NO + " + ?"
答案 2 :(得分:0)
您需要先使用select命令然后在cv。
中检索现有值使用游标检索值并将其存储在局部变量中。
现有+新值
现在写下你的更新声明。
答案 3 :(得分:-1)
不完全确定你想做什么,但也许:
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(); }
}