Android / SQLite:获取rawquery选择的rowid的正确方法是什么?

时间:2019-01-05 21:45:15

标签: android sqlite

我试图从RANDOM()排序的SQLite获取原始查询结果的rowid。我已经阅读了许多帖子,并尝试应用解决方案以了解有效性。我不断收到错误消息:

android.database.CursorIndexOutOfBoundsException: Index -1 requested, with a size of 1

我读到-1表示该列不存在,但确实存在。

错误在下面的代码中突出显示了这一行:

mRow = mCursor.getInt(mCursor.getColumnIndexOrThrow("_id"));

这是我正在尝试使用的代码方法:

public static void PopulateTodaysQuote(Context context) {

        String rawQuery = "SELECT _id, book_main, page_number, author_name, quote FROM todaysquotedb ORDER BY RANDOM() LIMIT 1";
        mCursor = mSQLiteDatabase.rawQuery(rawQuery, null);
        mRow = mCursor.getInt(mCursor.getColumnIndexOrThrow("_id"));
        TodaysQuoteCursorAdapter todaysQuoteCursorAdapter = new TodaysQuoteCursorAdapter(context, mCursor);
        mTodaysQuoteListView.setAdapter(todaysQuoteCursorAdapter);
}

mRow是一个整数,我希望等于选择的rowid,因此我可以将其与共享的首选项一起保存并在以后加载。任何帮助表示赞赏。

0 个答案:

没有答案