1. Hast Du Lust, bei uns mitzuarbeiten und das AH-Team zu verstärken? Alle Details zu dieser aktuellen Herausforderung findest Du hier.
  1. Freddchen, 16.02.2012 #1
    Freddchen

    Freddchen Threadstarter Neuer Benutzer

    hallo zusammen,

    ich bräuchte mal ein kleines tutorial damit ich die datenbank vernünftig abfragen kann.

    also ich habe eine datenbankklasse die sich nur um die behandlung von datenbanktypischen dingen beschäft (wie logisch aber auch). wie zum beispiel select oder insert oder update. beim select teil also readdatafromdatabase() habe ich so aufgebaut:

    db = openHelper.getReadableDatabase();
    Cursor cursor = db.rawQuery("SELECT * FROM courses", null);if(cursor.moveToFirst())

    do{
    dann der ganze kram damit ich ein array befüllen kann

    .....

    } while (cursor.moveToNext());

    cursor.close();
    db.close();

    ich bekomme fehler wie beispielsweise:

    android attempt to re-open an already-closed object
    android java.lang.IllegalStateException: database (conn# 0) already closed
    android.database.sqlite.DatabaseObjectNotClosedException: Application did not close the cursor or database object that was opened here
    java.lang.IllegalStateException: Don't have database lock!
    at android.database.sqlite.SQLiteDatabase.verifyLockOwner(SQLiteDatabase.java:2131)

    ich vermute das ich irgendwas vergesse zu machen. also wie lock(e) ich eine datenbank? ich benutze keinen adapter!

    danke gruß,

    freddchen
     
  2. Schwede, 18.02.2012 #2
    Schwede

    Schwede Neuer Benutzer

    Hallo Freddchen,

    versuche es mal so (siehe unten). Offensichtlich definierst du weiter vorn in deinem Programm openHelper so:

    DatabaseHelper openHelper = new DatabaseHelper(mContext);

    diesen openHelper musst du schließen!

    Deine do-Schleife habe ich mal geändert in eine while Schleife.

    db = openHelper.getReadableDatabase();
    Cursor cursor = db.rawQuery("SELECT * FROM courses", null);

    while (!cursor.isAfterLast()) {
    ...hier dann Array füllen
    c.moveToNext();
    }
    cursor.close();
    openHelper.close();

    Viele Grüße
    Schwede
     
Die Seite wird geladen...
Ähnliche Themen Forum Datum
[ERLEDIGT] Wandernder Text Android App Entwicklung 17.10.2017
[OFFEN] Übereinstimmung Spracherkennung Datenbank finden Android App Entwicklung 13.10.2017
[OFFEN] Lists-in-List-Problem Android App Entwicklung 12.10.2017
[OFFEN] Komplette SQLite Datenbank verschlüsseln Android App Entwicklung 19.09.2017
[OFFEN] Problem mit meiner Login App Android App Entwicklung 10.06.2017
[OFFEN] git-Problem in Android Studio (Windows) Android App Entwicklung 24.05.2017
[ERLEDIGT] put in HashMap bringt App zum abstürzen Android App Entwicklung 22.05.2017
[OFFEN] Updateinstallation: Trotzdem Datenbank gelöscht Android App Entwicklung 12.05.2017
[ERLEDIGT] Problem mit Async Task und auszuführender Aufgabe Android App Entwicklung 02.05.2017
[ERLEDIGT] Listview mit Datenbank über Custom ArrayList verbinden Android App Entwicklung 22.04.2017
Du betrachtest das Thema "datenbank problem cursor(?!)" im Forum "Android App Entwicklung",