SQLite
 sql >> Baza danych >  >> RDS >> SQLite

java.lang.IllegalStateException:Nie można odczytać wiersza 0, col -1 z CursorWindow — problem z sqlite dla Androida

Trzecia linia to problem. Zobacz dane wyjściowe logcat i źródła systemu Android (wyszukaj w źródłach „żądanie nazwy kolumny z nazwą tabeli”). Teraz spójrz na wyjście z logcata. Wiersz z tym zdaniem zawiera żądaną nazwę kolumny:/mnt/sdcard/googleCheckout/Saxo Trader.apk . Ta wartość pochodzi z kursora wyniku. Oczywiście twoja baza danych nie zawiera tej kolumny :-)

Zastąp wiersze

     String url = c.getString(c.getColumnIndex(c.getString(0)));
     String code = c.getString(c.getColumnIndex(c.getString(1)));

z

     String url = c.getString(c.getColumnIndex("reco_index_user_action_download_file"));
     String code = c.getString(c.getColumnIndex("reco_index_content_code"));

Proponuję również przeciągnąć kod do pobierania indeksów z wewnątrz pętli na zewnątrz pętli. Nie musisz ciągle pytać o indeksy.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak działa SQLite Ifnull()

  2. Zmień separator na przecinek w wynikach zapytania SQLite

  3. SQLite nie może otworzyć pliku bazy danych (kod 14) przy częstym zapytaniu SELECT

  4. Eksportuj bazę danych SQLite do pliku XML

  5. Tabela nie jest tworzona na androida sqlite