2015-07-14 2 views
-2

я получаю следующую ошибкуAndroid курсора всегда возвращался пустой

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

Я знаю, что у меня есть данные в базе данных, так как подобный запрос для всех данных (а не одну записи) вытаскивает список успешно

Вот мой код для помощника базы данных

public class DatabaseHandler extends SQLiteOpenHelper { 
    ... 

    public Service getMostRecentService() { 
    SQLiteDatabase db = this.getReadableDatabase(); 
    String selectQuery = "SELECT * FROM " + TABLE_CONTACTS + " ORDER BY " + KEY_ID + " DESC LIMIT 1;"; 

    Cursor cursor = db.rawQuery(selectQuery, null); 

    Service service = new Service(); 
    if(cursor != null) { 
     service = new Service(cursor.getString(1), cursor.getString(2)); 
    } 

    return service; 
    } 
} 

Любые идеи, почему я получаю выхода за исключением ограничивающей?

ответ

5

Вы не позиционировали свой Cursor в строке. Первоначально он находится в позиции -1. Предположительно, учитывая ваш существующий код, вы должны позвонить moveToFirst() по телефону Cursor после проверки null и перед вашими вызовами getString().

+0

oops пропустил это. Как неловко – EnduroDave

Смежные вопросы