Это поставило меня в тупик.
Я продолжаю получать CursorIndexOutOfBounds при попытке выполнить этот конкретный запрос.
Cursor c = db.rawQuery("SELECT * FROM table WHERE _id='2'" , null);
Но странным является то, что над этим запросом я запускаю цикл, который выводит все значения _id из этой таблицы. Он выводит от 1 до 100, так что я знаю, что значение там. Также я вывожу все столбцы, и они все там, как я и ожидал.
Хотя я почти уверен, что есть значения, и в правильных столбцах эта строка кода продолжает отбрасывать CursorIndexOutOfBounds. Может ли кто-нибудь предложить пути решения этой проблемы.
numval = c.getInt(c.getColumnIndex("_id"));
Запись Logcat
11-21 11:35:09.367: ERROR/AndroidRuntime(11664): Caused by: android.database.CursorIndexOutOfBoundsException: Index 0 requested, with a size of 0
EDIT
Вот точный код, который я использую. Я все еще получаю сообщение об ошибке, которое я разместил чуть выше этого предложения.
Cursor cur = db.rawQuery("SELECT * FROM table" , null);
cur.moveToFirst();
while (cur.isAfterLast() == false) {
numval = cur.getInt(cur.getColumnIndex("_id"));
String numvalval = Integer.toString(numval);
Log.e("RESULT",numvalval);
cur.moveToNext();
}
cur.close();
Cursor ti = db.rawQuery("PRAGMA table_info(table)", null);
if ( ti.moveToFirst() ) {
do {
Log.e("COLUMN NAMES","col: '" + ti.getString(1) +"'");
} while (ti.moveToNext());
}
ti.close();
Cursor c = db.rawQuery("SELECT * FROM table WHERE _id='2'" , null);
c.moveToFirst();
numval = c.getInt(c.getColumnIndex("_id"));
вывод
11-21 13:27:25.906: ERROR/RESULT(13377): 1
11-21 13:27:25.906: ERROR/RESULT(13377): 2
11-21 13:27:25.910: ERROR/COLUMN NAMES(13377): col: '_id'
11-21 13:27:25.910: ERROR/COLUMN NAMES(13377): col: 'country'