1. Nimm jetzt an unserem Uhans - 3. ADVENT - Gewinnspiel teil - Alle Informationen findest Du hier!

INSERT INTO (SQLite) funktioniert nicht

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von Reaper14, 24.02.2012.

  1. Reaper14, 24.02.2012 #1
    Reaper14

    Reaper14 Threadstarter Neuer Benutzer

    Beiträge:
    24
    Erhaltene Danke:
    2
    Registriert seit:
    28.02.2011
    Hallo,
    ich hab ein Problem.Ich will in eine Datenbank Werte einfügen.
    Mein Quellcode ist:
    Code:
    MeineDB = this.openOrCreateDatabase(DB_NAME, MODE_PRIVATE, null);
            System.out.println("DB geöffnet und verbunden");
            MeineDB.execSQL("CREATE TABLE IF NOT EXISTS " +DB_TABLE + " (_id integer primary key autoincrement,name varchar(20),passworthash varchar(20),rechte varchar(10),root varchar(255),lastseen varchar(30) )" +";");
            
    MeineDB.rawQuery("INSERT INTO User(name,passworthash,rechte,root,lastseen) VALUES('hansjj','dsdd','keine','fff','dfgdgf');", null);
       
    MeineDB.rawQuery("INSERT INTO User(name,passworthash,rechte,root,lastseen) VALUES('hanhjjksjj','dshkjdd','keinhjkhjke','ffhjkhkjf','dfgdgf');", null);
    
    
    
    Natürlich wurden die Konstanten auch gesetzt.
    Wenn ich jetzt versuche die Datenbank zu lesen steht,nichts drin.
    Auch wenn ich die Datenbank mit dem Rootexplorer runterlade sehe ich das die Datenbank,Tabelen und die Spalten erstellt wurden aber sie keine Werte enthalten.
    Was mache ich falsch? Kann mir jemand helfen? Oder braucht ihr mehr angeben? Wenn ja welche?
     
  2. swordi, 24.02.2012 #2
    swordi

    swordi Gewerbliches Mitglied

    Beiträge:
    3,389
    Erhaltene Danke:
    441
    Registriert seit:
    09.05.2009
    wenn beim insert etwas schief geht, steht eine begründung im logcat - das hilft dir sicher weiter
     
  3. Reaper14, 24.02.2012 #3
    Reaper14

    Reaper14 Threadstarter Neuer Benutzer

    Beiträge:
    24
    Erhaltene Danke:
    2
    Registriert seit:
    28.02.2011
    Ok das Logcat zeigt mir leider nichts an. Also keine Ausgabe zu den Datenbanken.Kann ich sonst wie überprüfen ob die Daten vorhanden sind?
    Ich lese die Daten so:
    Code:
     System.out.println(myCursor.getString(myCursor.getColumnIndex("name")));
    
    Da zeigt mir das Logcat aber das an:
    Code:
    02-24 20:03:31.604: E/AndroidRuntime(8190): FATAL EXCEPTION: main
    02-24 20:03:31.604: E/AndroidRuntime(8190): android.database.CursorIndexOutOfBoundsException: Index -1 requested, with a size of 0
    02-24 20:03:31.604: E/AndroidRuntime(8190):     at android.database.AbstractCursor.checkPosition(AbstractCursor.java:580)
    02-24 20:03:31.604: E/AndroidRuntime(8190):     at android.database.AbstractWindowedCursor.checkPosition(AbstractWindowedCursor.java:214)
    02-24 20:03:31.604: E/AndroidRuntime(8190):     at android.database.AbstractWindowedCursor.getString(AbstractWindowedCursor.java:41)
    
    Und wie schon gesagt die Datei selber ist halt auch leer.
     
  4. swordi, 24.02.2012 #4
    swordi

    swordi Gewerbliches Mitglied

    Beiträge:
    3,389
    Erhaltene Danke:
    441
    Registriert seit:
    09.05.2009
    Machst du Cursor.movetofirst() ???

    Logcat sagt dir ja dass was net passt. Lies genauer

    Gesendet mit der Android-Hilfe.de-App
     
  5. Reaper14, 25.02.2012 #5
    Reaper14

    Reaper14 Threadstarter Neuer Benutzer

    Beiträge:
    24
    Erhaltene Danke:
    2
    Registriert seit:
    28.02.2011
    Nein,aber wenn ich es mit rein nehme passt es trotzdem nicht.Es sagt dann das selbe nur das halt nicht -1 angefordert wird sonder 0. Aber die größe(size) ist ja trotzdem 0.
     
  6. swordi, 25.02.2012 #6
    swordi

    swordi Gewerbliches Mitglied

    Beiträge:
    3,389
    Erhaltene Danke:
    441
    Registriert seit:
    09.05.2009
    naja wie liest du die daten dann ?

    die size scheint ja 0 zu sein bei den spalten im cursor

    myCursor.getColumnIndex("name") gibt dir ja den spalten index zurück
    -1 wenn die spalte nicht vorhanden ist.

    0 ist die erste spalte.
     

Diese Seite empfehlen