2017-12-16 1 views
-2

Ich versuche, Werte von SQLite-Datenbank zu erhalten und sie zu einer ArrayList hinzuzufügen. Ich weiß nicht, was das Problem ist. Ich kann mehr Code posten, wenn es in diesen Codeteilen kein Problem gibt.java.lang.IllegalStateException: Zeile 1, Spalte 4 von CursorWindow konnte nicht gelesen werden

@Override 
public void onCreate(SQLiteDatabase db) { 

    String sql ="create table tablo(id integer primary key,tipi text,turu text, miktar text, notlar text) "; 
    db.execSQL(sql); 



public List<String> listAll(){ 


    List<String>liste = new ArrayList<String>(); 
    Cursor c = db.rawQuery("select * from tablo",null); 
    c.moveToFirst(); 

    while (c.moveToNext()){ 
     int id = c.getInt(0); 
     String tipi=c.getString(1); 
     String turu = c.getString(2); 
     String miktar = c.getString(3); 
     String notlar =c.getString(4); 

     Data d = new Data(id,tipi,turu,miktar,notlar); 
     String toSt =d.toString(); 
     liste.add(toSt); 
    } 

Antwort

0

Eine wahrscheinliche Ursache ist, dass Sie die SQL geändert haben, die durch Zugabe des notlar Spalte der Tabelle erstellt.

Durch einfaches Ändern dieser Zeile wird jedoch keine Änderung vorgenommen, da die Methode onCreate des Datenbankhelfers nur ausgeführt wird, wenn die Datenbank erstellt wird.

Zusätzlich in der listAll Methode ist die Linie c.moveToFirst(); sehr wahrscheinlich nicht gewollt, da es die erste Reihe überspringt. Daraus ergibt sich die Nachricht, das Problem in Zeile 1 anstelle der Zeile anzeigt 0.

um die Probleme zu beheben,

1) ändern, den Code c.moveToFirst(); zu entfernen.

2) Wählen Sie eine der folgenden Möglichkeiten: -

  • die Daten der App löschen.
  • Deinstallieren Sie die App.

3) Führen Sie die App erneut aus.

Verwandte Themen