Android Sqlite无法删除两个表中的数据

时间:2017-03-01 18:26:12

标签: android sqlite

我正在努力确保我的数据库始终只包含10个关键字条目,而且只包含现有关键字的那些项目。这就是我想出的:

SQLiteDatabase db = this.getWritableDatabase();
        while (getKeywordsCount() > leaveN){
            Cursor cursor = db.rawQuery("SELECT MIN(" + KEYWORDS_KEY_ID + ") FROM " + TABLE_KEYWORDS, null);
            long minId = Long.parseLong(cursor.getString(0));
            cursor.close();

            db.delete(TABLE_KEYWORDS, KEYWORDS_KEY_ID + " = ?", new String[] {String.valueOf(minId)});
            db.delete(TABLE_ITEMS, ITEMS_KEY_KEYWORD_ID + " = ? ", new String[] {String.valueOf(minId)});
        }
        db.close();

执行此方法时,我会遇到异常:

java.lang.IllegalStateException: attempt to re-open an already-closed object: SQLiteDatabase:

它指向行:

Cursor cursor = db.rawQuery("SELECT MIN(" + KEYWORDS_KEY_ID + ") FROM " + TABLE_KEYWORDS, null);

为什么会这样?这是因为我连续两次调用db.delete吗?

0 个答案:

没有答案