当我尝试插入数据库时,日志cat显示错误,如java.lang.illegalstateexception database not open android.
但我已经使用
打开了数据库 db = SQLiteDatabase.openDatabase(DATABASE_PATH, null,
SQLiteDatabase.OPEN_READWRITE);
错误不是经常发生的。有人知道这个的原因吗?
答案 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)
也许你正在打开一个已打开的数据库。每次工作完成后关闭数据库。