如何从一个一次只返回一行的函数中获取SQLite的每一行

时间:2016-01-03 12:47:03

标签: java android sqlite

我有一个包含N行的SQLite数据库,我需要通过知道数据库中的行数来检索每一行,我尝试过的是:

public CategoriesItem returnCategory(int index){
        SQLiteDatabase db = this.getWritableDatabase();
        Cursor mRow= db.rawQuery("select * from " + TABLE_CATEGORY + " LIMIT 0, " + index, null);
        if (null!=mRow) {
            mRow.moveToNext();
            item.auto_id = Integer.toString(mRow.getInt(mRow.getColumnIndex(KEY_ID)));
            item.title = mRow.getString(mRow.getColumnIndex(KEY_CATEGORY_NAME));
            item.subTitle = mRow.getString(mRow.getColumnIndex(KEY_CATEGORY_DESCRIPTION));
        }

        return item;
    }

问题是,即使索引不是1,它也会每次只返回第一行。 查询有什么问题?如何通过了解DB中的行数来获得单行值?

2 个答案:

答案 0 :(得分:1)

这似乎有用,我会做一些测试,但这应该是解决方案:

Cursor mRow= db.rawQuery("select * from " + TABLE_CATEGORY + " LIMIT 1 OFFSET " + index, null);

答案 1 :(得分:0)

您可能想要做的是迭代Cursor,然后您可以使用每一行中的数据。 What's the best way to iterate an Android Cursor?