Android SQLITE 非法状态异常
Android SQLITE Illegal State Exception
我正在使用以下代码将项目添加到数据库中:
public static void insertQuestion(Context c,JSONArray jarr,String search) throws JSONException {
DatabaseWrapper databaseWrapper = new DatabaseWrapper(c);
SQLiteDatabase database = databaseWrapper.getWritableDatabase();
ContentValues values = postToContentValues2(jarr);
values.put(QuestionORM.COLUMN_SEARCH,search);
long questionId = database.insert(QuestionORM.TABLE_NAME, "null", values);
Log.e(TAG, "Inserted new Question with ID: " + questionId);
database.close();
}
但我收到一条错误消息
"attempt to re-open an already-closed object"
这一行:
SQLiteDatabase database = databaseWrapper.getWritableDatabase();
我该如何解决这个问题?
谢谢!
打开前检查
if(database != null && database.isOpen()){
// if open then don't open
}
----更新----
// 在你的 class calss
中添加这个方法
private SQLiteDatabase myDataBase;
...
public boolean isDatabaseOpened() {
if (myDataBase == null) {
return false;
}
return myDataBase.isOpen();
}
如果方法 returns false 则仅根据您的要求调用 getWritableDatabase() 或 getReadableDatabas()。
我正在使用以下代码将项目添加到数据库中:
public static void insertQuestion(Context c,JSONArray jarr,String search) throws JSONException {
DatabaseWrapper databaseWrapper = new DatabaseWrapper(c);
SQLiteDatabase database = databaseWrapper.getWritableDatabase();
ContentValues values = postToContentValues2(jarr);
values.put(QuestionORM.COLUMN_SEARCH,search);
long questionId = database.insert(QuestionORM.TABLE_NAME, "null", values);
Log.e(TAG, "Inserted new Question with ID: " + questionId);
database.close();
}
但我收到一条错误消息
"attempt to re-open an already-closed object"
这一行:
SQLiteDatabase database = databaseWrapper.getWritableDatabase();
我该如何解决这个问题?
谢谢!
打开前检查
if(database != null && database.isOpen()){
// if open then don't open
}
----更新----
// 在你的 class calss
中添加这个方法private SQLiteDatabase myDataBase;
...
public boolean isDatabaseOpened() {
if (myDataBase == null) {
return false;
}
return myDataBase.isOpen();
}
如果方法 returns false 则仅根据您的要求调用 getWritableDatabase() 或 getReadableDatabas()。