java.lang.illegalstateexception数据库无法打开android

时间:2012-05-29 11:08:14

标签: android sqlite

当我尝试插入数据库时​​,日志cat显示错误,如java.lang.illegalstateexception database not open android.

但我已经使用

打开了数据库
   db = SQLiteDatabase.openDatabase(DATABASE_PATH, null,
                SQLiteDatabase.OPEN_READWRITE);

错误不是经常发生的。有人知道这个的原因吗?

4 个答案:

答案 0 :(得分:12)

试试这样:

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

答案 1 :(得分:2)

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

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

并在重新编写当前代码时调用此方法。

答案 2 :(得分:0)

试试此代码

 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
}

答案 3 :(得分:-1)

也许你正在打开一个已打开的数据库。每次工作完成后关闭数据库。