8

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

但我已经使用

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

该错误不经常发生。有人知道这是什么原因吗?

4

4 回答 4

13

试试这样:

  if (!db.isOpen()) {
       db = getApplicationContext().openOrCreateDatabase(DATABASE_PATH, SQLiteDatabase.OPEN_READWRITE, null);
     }
于 2012-05-29T11:15:14.740 回答
2

尝试

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

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

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

于 2012-05-29T11:11:50.420 回答
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
}
于 2012-05-29T11:26:14.777 回答
-1

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

于 2012-05-29T11:11:12.647 回答