Java:行在前一行完成运行之前执行?

时间:2014-05-31 07:40:02

标签: java android sqlite

首先抱歉我的英语不好,所以我只是问我的问题。

我写了我的来源

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表格的行,并将ListAdapter设置为带有new ArrayList<String>的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.
}

1 个答案:

答案 0 :(得分:1)

看起来您的查询是先执行而不是提交然后您在refreshList方法中使用新连接,因此它将为您提交的数据提供结果,而不是那些尚未提交的数据