0

我的 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;
    }

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

4

0 回答 0