sql >> Database teknologi >  >> RDS >> SQLite

android.database.CursorIndexOutOfBoundsException

Du forsøger at hente et element på indeks 2, men dette indeks eksisterer virkelig ikke (markørstørrelsen er 2, så indekserne er 0,1).

Skift din loop:

if (result != null && result.moveToFirst()){
    do {
       Post post = new Post();
       post.setPostId(result.getInt(0));
       posts.add(post);
       ....
    } while (result.moveToNext());
}

Nu skulle det fungere korrekt.

Bemærk: Glem ikke at kalde moveToFirst() metode, der flytter markøren ind i den første post (er implicit placeret før den første række) og forbereder den til læsning. Dette er også en praktisk metode til at teste, om markøren er gyldig eller ej.

Bemærkning 2: Brug ikke kolonneindekser, du kan simpelthen lave en fejl i optællingen. I stedet for at bruge kolonnenavne - denne fremgangsmåde anbefales generelt f.eks. cursor.getColumnIndex("<columnName>")



  1. Entity Framework 6 - Timing forespørgsler

  2. 5 almindelige fejl at undgå, når du de-duperer dine data

  3. Python SQL – Sådan bruger du SQLite-, MySQL- og PostgreSQL-databaserne med Python

  4. PCI Compliance for MySQL &MariaDB med ClusterControl