Android SQLITE数据库更新表无效

时间:2017-10-04 18:52:47

标签: java android android-sqlite

contactid = 123;
SYNC_SUCCESS = 1;
db.updateSyncStatus(contactid, SYNC_SUCCESS);

我尝试了3种可能的方法来更新SQLite DB中的表。但它不起作用。 INSERT和DELETE进程运行良好。只有我在UPDATE面临问题。我错过了什么吗?

    public void updateSyncStatus(String contactid, int syncSuccess) {
    SQLiteDatabase db = this.getWritableDatabase();
    ContentValues CV = new ContentValues();
    CV.put(CONTACTS_SYNC_STATUS, syncSuccess);

    try {
//            db.update(TABLE_CONTACTS, CV, CONTACTS_CONTACTID + "='" + contactid + "'", null);    // Tried, Not working
//            db.update(TABLE_CONTACTS, CV, CONTACTS_CONTACTID +" = ?", new String[] {contactid});    // Tried, Not Working
        db.update(TABLE_CONTACTS, CV, CONTACTS_CONTACTID + " = ?", new String[]{contactid});
    }
    catch (Exception e){
        String error =  e.getMessage().toString();
        Log.e(TAG, "UpdateError: " + error);
    }
    db.close();
}

表格结构:

        String CREATE_CONTACTS_TABLE = "CREATE TABLE IF NOT EXISTS " + TABLE_CONTACTS + "("
            + CONTACTS_ID + " INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,"
            + CONTACTS_NUMBER + " VARCHAR,"
            + CONTACTS_CONTACTID + " VARCHAR,"
            + CONTACTS_SYNC_STATUS + " TINYINT DEFAULT 0" + ")";
        db.execSQL(CREATE_CONTACTS_TABLE);

1 个答案:

答案 0 :(得分:0)

实际上问题不在于更新查询。问题是,在执行updateSyncStatus方法之前,下一个语句运行,我在更新行之前得到输出。所以我在显示输出之前使用Handler等待10秒。