无法获取与sqlite中的id匹配的所有行

Har*_*aki 0 sqlite android

我有以下代码,我试图抓住所有匹配id的行.

public ChartData getCompliedChartCounts(int id) {
        SQLiteDatabase db = this.getReadableDatabase();

        SQLiteDatabase sqLiteDatabase = this.getWritableDatabase();
        ContentValues contentValues = new ContentValues();


        Cursor cursor = db.query(TABLE_COMPLIANCE_CHART_COUNTS, new String[]{KEY_ID,
                        KEY_FILTER_ID, KEY_YEAR, KEY_COUNTRY_ID, KEY_DOMAIN_ID, KEY_COMPLIED_COUNT, KEY_NOT_COMPLIED_COUNT, KEY_DELAYED_COUNT, KEY_INPROGRESS_COUNT}, KEY_COUNTRY_ID + "=?",
                new String[]{String.valueOf(id)}, null, null, null, null);
        if (cursor != null)
            cursor.moveToFirst();
        ChartData country = new ChartData(cursor.getInt(0), cursor.getInt(1), cursor.getInt(2), cursor.getInt(3), cursor.getInt(4), cursor.getInt(5), cursor.getInt(6), cursor.getInt(7), cursor.getInt(8));
        // return contact
        return country;
    }
Run Code Online (Sandbox Code Playgroud)

当我像getCompliedChartCounts(3)一样调用它时,我希望它抓取包含id 3的所有行.

但问题是,它只捕获与id 3匹配的第一行,而其余行未被获取.我该如何解决这个问题?

Sur*_*wah 5

亲爱的,你不是迭代光标.你只能获取你应该尝试的第一行

try {
    while (cursor.moveToNext()) {
        ...
    }
} finally {
    cursor.close();
}
Run Code Online (Sandbox Code Playgroud)

并保留所有内容并抓住所有内容