首先,我英语不好,所以我只问我一个问题。
我写了我的资料
db.execSQL(String.format("DELETE FROM 'myTable' WHERE id=%d", i));
db.execSQL(String.format("UPDATE 'myTable' SET id=%d WHERE id=%d", i, i+1);
refreshList();
refreshList()
获取myTable表的行,并使用new ArrayList<String>
将ListAdapter设置为ListView。但是当转到refreshList函数时,它将显示以前的数据库内容。
似乎是什么问题?
编辑
这就是我编写的全部代码。
SQLiteDatabase db;
db = mHelper.getWritableDatabase();
db.execSQL(String.format("DELETE FROM '_CTGLIST' WHERE id=%d", i));
db.execSQL(String.format("UPDATE '_CTGLIST' SET id=%d WHERE id=%d", i, i+1));
db.close();
refreshList();
和
private void refreshList() {
ArrayList<String> mCategoryList = new ArrayList<String>;
SQLiteDatabase db;
Cursor cursor;
db = mHelper.getReadableDatabase();
cuCategory = db.rawQuery("SELECT * FROM '_CTGLIST' ORDER BY id ASC;", null);
while (cuCategory.moveToNext()) {
mCategoryList.add(cuCategory.getString(0));
}
db.close();
//and set list adapter here.
//i won't write this part of code in here.
}
最佳答案
看起来您的查询先执行后又未提交,然后您在refreshList方法中使用了新连接,因此它将为您提供已提交的数据而不是尚未提交的数据的结果。