Android SQLite db.update()添加值

时间:2014-05-09 17:13:29

标签: android sqlite field

我使用方法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();
}
    }

4 个答案:

答案 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(); }
    }