2012-05-29 21 views
7

Wenn ich Datenbank-Protokoll Katze einzufügen versuchen zeigt einen Fehler wie java.lang.illegalstateexception database not open android.java.lang.IllegalStateException Datenbank nicht öffnen android

Aber ich habe die DB mit

db = SQLiteDatabase.openDatabase(DATABASE_PATH, null, 
       SQLiteDatabase.OPEN_READWRITE); 

Der Fehler nicht geöffnet ist häufig vorkommen. Weiß jemand den Grund dafür?

Antwort

12

es so versuchen:

if (!db.isOpen()) { 
     db = getApplicationContext().openOrCreateDatabase(DATABASE_PATH, SQLiteDatabase.OPEN_READWRITE, null); 
    } 
+0

ich das versucht, aber statt getApplicationContext() Ich habe hinzugefügt SQLiteDatabase.How Application in einer Klasse von SQLiteOpenHelper verlängert bekommen – user1414146

+1

Der Constructor von 'SQLiteOpenHelper' nimmt also einen Parameter' Context context', also 'context.openOrCreateDatabase()' ... – Sajmon

+0

Vielen Dank für Ihre Hilfe :) – user1414146

-1

vielleicht öffnen Sie eine geöffnete Datenbank. Schließen Sie Ihre Datenbank jedes Mal, wenn Ihre Arbeit erledigt ist.

2

versuchen

DatabaseHelper dataHelper; 
SQLiteDatabase mDb; 
    public DbManager openDB() throws SQLException { 

    mDb = dataHelper.getWritableDatabase(); 
    return this; 
} 

und diese Methode aufrufen, wenn Ihre Wieder Ihren aktuellen Code zu schreiben.

0

diesen Code Versuchen

public class DataBaseHelper extends SQLiteOpenHelper{ 
    public SQLiteDatabase openDataBase() throws SQLException{ 

      //Open the database 

      File dbFile = _myContext.getDatabasePath(DB_PATH + DB_NAME); 
      _myDataBase = SQLiteDatabase.openDatabase(dbFile.toString(), null, SQLiteDatabase.OPEN_READWRITE); 

      return _myDataBase; 
     }//end of openDataBase() method 
} 
Verwandte Themen