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

Android 无法获取与sqlite中的id匹配的所有行,android,sqlite,Android,Sqlite,我有下面的代码,我试图抓取与id匹配的所有行 public ChartData getCompliedChartCounts(int id) { SQLiteDatabase db = this.getReadableDatabase(); SQLiteDatabase sqLiteDatabase = this.getWritableDatabase(); ContentValues contentValues = new ContentVal

我有下面的代码,我试图抓取与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;
    }
当我像getCompliedChartCounts(3)那样调用它时,我希望它获取包含id 3的所有行


但问题是,它只抓取与ID3匹配的第一行,而其余的行不会被抓取。我怎样才能解决这个问题呢?

亲爱的,您没有迭代光标。您只获取第一行,您应该尝试

try {
    while (cursor.moveToNext()) {
        ...
    }
} finally {
    cursor.close();
}

按住所有内容并抓取所有内容

亲爱的,您不是在重复光标。您只获取第一行,您应该尝试

try {
    while (cursor.moveToNext()) {
        ...
    }
} finally {
    cursor.close();
}

按住“所有内容”并抓取“所有内容”

你怎么知道它只抓取了一行?您没有在
光标上迭代。您是否正在检查它的
getCount()
?您是否尝试过像
那样循环游标while(cursor.moveToNext())
?我尝试过记录,它只记录与使用moveToNext()尝试的idI匹配的第一个元素但是同样的问题仍然存在,Fallows这个链接我希望它对你有用,你怎么知道它只占了一行呢?您没有在
光标上迭代。你是否正在检查它的
getCount()
?你是否尝试过像
那样循环游标while(cursor.moveToNext())
?我尝试过记录,它只记录与idI匹配的第一个元素,尝试过使用moveToNext(),但仍然存在相同的问题。Fallows这个链接我希望它能为你工作