SQLite Update Query将值加1

时间:2014-07-24 12:19:05

标签: android sqlite android-sqlite

我正在努力在我的Android应用程序中使用Sqlite的更新功能。我只是尝试将1添加到已存在的行中。

这就是我目前所拥有的:

 public void updateItemQty(int SKU) {
        SQLiteDatabase db = getWritableDatabase();
        String p[] = new String[]{String.valueOf(SKU)};
        ContentValues args = new ContentValues();
        args.put(Keys.Key_SENTQTY, Keys.Key_SENTQTY + 1);
        try {
            db.update(Keys.Key_CARTONITEMTABLE, args, Keys.Key_SKU + " = ? AND " + Keys.Key_STATUS + " = 0 ", p);
        } catch (SQLiteException e) {
            e.printStackTrace();
        }

        db.close();
    }

这个问题是,不是在我的key.KEY_SENTQTY中添加1,而只是将sent_qty1输入到表中!我如何实现我的目标?

由于

3 个答案:

答案 0 :(得分:1)

从技术上讲,您可以将sent_qty设置为sent_qty + 1,但不能使用contentValues,因为它们会彻底转义。

使用execSQL,您可以:

db.execSQL("update " + Keys.Key_CARTONITEMTABLE 
         + " set " + Keys.Key_SENTQTY + " = " + Keys.Key_SENTQTY + " + 1 where " 
         + Keys.Key_SKU + " = " + SKU + " and " + Keys.Key_STATUS + " = 0");

答案 1 :(得分:0)

这是因为Keys.KEY_SENTQTYString。你应该如何将int添加到String

答案 2 :(得分:0)

经过一些研究并被@Selvin指向正确的方向后,这是不可能的,因为ContentValues是在查询前设置的,所以你也没有要添加的行的值。

我的假设是,这是在运行查询时执行的,这是不正确的。