Не удалось прочитать строку 0, столбец 5 из CursorWindow. Убедитесь, что курсор инициализирован правильно, прежде чем получить доступ к данным из него - PullRequest
0 голосов
/ 03 февраля 2020

Log Cat

Причина: java .lang.IllegalStateException: Не удалось прочитать строку 0, столбец 5 из CursorWindow. Убедитесь, что курсор инициализирован правильно, прежде чем получить доступ к данным из него. в android .database.CursorWindow.nativeGetString (собственный метод) в android .database.CursorWindow.getString (CursorWindow. java: 465) в android .database.AbstractWindowedCursor.getString (AbstractWindowedCursor. java: 51) в com.example.workhours.DataBaseHelper.ViewAllNotes (DataBaseHelper. java: 90) в com.example.workhours.MainActivity.ViewAllNotes (MainActivity. java: 55) в com.example.workhours.MainActivity.onCreate (MainActivity. java: 37)

public  ArrayList<newNote> ViewAllNotes() {
    ArrayList<newNote> arrayList = new ArrayList<>();
    SQLiteDatabase db = this.getWritableDatabase();
    Cursor cursor = db.rawQuery("SELECT NOTEMEMOS FROM " + TABLE_NAME, null);

    while(cursor.moveToNext()){
        String notes = cursor.getString(5);
        newNote newNote = new newNote(notes);
        arrayList.add(newNote);
    }
    return arrayList;
}

Запрос

@Override
public void onCreate(SQLiteDatabase db) {
    db.execSQL("CREATE TABLE " + TABLE_NAME + "(ID INTEGER PRIMARY KEY AUTOINCREMENT, DATE TEXT, TIMESHIFTSTART INTEGER, TIMESHIFTENDS TEXT, NOTES TEXT, NOTEMEMOS TEXT)");
}

Ответы [ 2 ]

1 голос
/ 03 февраля 2020

У вашего курсора есть один столбец SELECT NOTEMEMOS, но вы пытаетесь прочитать шестой с помощью getString(5). Замените его на getString(0), чтобы прочитать только значение столбца.

0 голосов
/ 03 февраля 2020

Попробуйте переместить курсор в первую очередь, прежде чем получать какие-либо данные, и вы выбираете только для столбца из базы данных, но вы просите 5-й.

public  ArrayList<newNote> ViewAllNotes() {
ArrayList<newNote> arrayList = new ArrayList<>();
SQLiteDatabase db = this.getWritableDatabase();
Cursor cursor = db.rawQuery("SELECT NOTEMEMOS FROM " + TABLE_NAME, null);

cursor.moveToFirst();

newNote newnote = new newNote(cursor.getString(0));
arrayList.add(newnote);

while(cursor.moveToNext()){
    String notes = cursor.getString(0);
    newNote newnote = new newNote(notes);
    arrayList.add(newnote);
}
return arrayList;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...