Android SQLite增加

时间:2013-09-04 09:41:47

标签: sqlite

我想更新col_Item_Auto_ID列,每列+1,

像这样:用11替换10,用12等替换11等! 请帮帮我...这里的代码是,

 public void updateMiddleTemp(int autoid) {

        SQLiteDatabase db = this.getWritableDatabase();
        int id=51;


        ContentValues cv_temp1 = new ContentValues();
        cv_temp1.put(col_Item_Auto_ID, col_Item_Auto_ID+1);
        //ff

        long stemp = db.updateWithOnConflict(Table_KOT_ITEMS_TEMP, cv_temp1,
                col_Item_Auto_ID + " >= " + autoid, null,SQLiteDatabase.CONFLICT_IGNORE);
    db.close();
    }

4 个答案:

答案 0 :(得分:12)

试试这段代码,它运作正常:

 db.execSQL("UPDATE " + Table_KOT_ITEMS_TEMP + " SET "
                    + col_Sl_No + " = " + col_Sl_No + " +1 WHERE "
                    + col_Sl_No + " >" +into);
db.close();

答案 1 :(得分:6)

您无法使用标准update方法执行此操作 - 您需要使用execSql方法:

String sql = "UPDATE " + Table_KOT_ITEMS_TEMP +
             " SET " + col_Item_Auto_ID + "=" + col_ITEM_AUTO_ID + "+1" +
             " WHERE " + col_ItemAutoID + " >= " + autoid;

db.execSql(sql);

答案 2 :(得分:0)

可以使用updateWithOnConflict()完成此操作。

ContentValues中为值字段提供的值不正确。 结果值应为“ col_Item_Auto_ID + 1 ”而不是“ col_Item_Auto_ID1 ”。  所以尝试改变

cv_temp1.put(col_Item_Auto_ID, col_Item_Auto_ID+1);

cv_temp1.put(col_Item_Auto_ID, col_Item_Auto_ID+"+1");

答案 3 :(得分:0)

此代码对我有用:

String query = "UPDATE " + Constants.RecentChats.DB_RECENT_CHATS + " SET "
                         + Constants.RecentChats.UNREAD_COUNT + " = "
                         + Constants.RecentChats.UNREAD_COUNT +"+1"+ " WHERE "
                         + Constants.RecentChats.JID + " =" + id;

db.execSQL(query);