SQLite db更新需要时间吗?

时间:2013-04-28 18:26:04

标签: android sqlite

我的SQLite数据库存在问题。我使用以下命令将新条目存储到数据库中:

public Long createTest(String name, String lang)
    {
        ContentValues initialValues = new ContentValues();
        initialValues.put(KEY_TEST_NAME, name);
        initialValues.put(KEY_TEST_LANGUAGE, lang);
        initialValues.put(KEY_TEST_TRIED, 0);
        initialValues.put(KEY_TEST_CORRECT, 0);

        return mDb.insert(DB_TABLE_TEST, null, initialValues);
    }

但是当我尝试从数据库中获取新的“测试”时,我什么都没得到。

我的调试代码:

long id = mDbHelper.createTest(name, lang);
            if(id > 0)
                mId = id;  //A new id is returned!!

            Cursor testInfo = mDbHelper.getTestInfo(mId);
            startManagingCursor(testInfo);
            String lang_output = testInfo.getString(testInfo.getColumnIndexOrThrow(DbAdapter.KEY_TEST_LANGUAGE));
            Log.i("AddTestDebug", "lang_output = " + lang_output); //lang_output is null

createTest()会返回一个新ID。但lang_outputnull

奇怪的是,在我的下一个活动中,我调用完全相同的方法(getTestInfo(mId)),并将lang_output调整为正确的值。 如果我对先前保存的id进行硬编码,我也会得到正确的值。 (getTestInfo(26))。之前的ID始终有效..

我的getTestInfo

public Cursor getTestInfo(long id) throws SQLException {
        Cursor mCursor = mDb.rawQuery("SELECT test.name, test.lang, COUNT(words._id) AS num "
                + "FROM words, test "
                + "WHERE test._id = " + id + " "
                + "AND test._id = words.test_id", null);

        if(mCursor != null) {
            mCursor.moveToFirst();
        }
        return mCursor;
    }

为什么第一次没有正确返回条目?

0 个答案:

没有答案