我在我的sqlite數據庫操作類中出現錯誤。在android中的sqlite數據庫操作方法中得到一個異常
的錯誤是這樣的:java.lang.IllegalStateException:嘗試重新打開已關閉的對象:
我的代碼如下:
public void incrementViewCountForShow(String showId){
SQLiteDatabase db = this.getWritableDatabase();
showViews(showId);
String query = "UPDATE " + TABLE_SHOWS + " SET " + COLUMN_SHOW_VIEWS + "=" + COLUMN_SHOW_VIEWS + "+1" + " WHERE " + COLUMN_SHOW_ID + "=" + showId ;
db.rawQuery(query, null);
showViews(showId);
db.close();
}
private void showViews(String showId){
boolean isFirst = true;
StringBuilder strBuilder = new StringBuilder();
SQLiteDatabase db = this.getReadableDatabase();
String query = "SELECT " + COLUMN_SHOW_NAME_EN + "," + COLUMN_SHOW_VIEWS + " FROM " + TABLE_SHOWS + " where " + COLUMN_SHOW_ID + "=" + showId;
Cursor cursor = db.rawQuery(query, null);
if (cursor != null) {
while (cursor.moveToNext()) {
strBuilder.append(cursor.getString(0));
}
}
cursor.close();
db.close();
}
,這是什麼錯誤的原因?如何解決這個問題?
**我們不能用同樣的方法做兩個操作嗎? (從分貝讀兩次)
由於
感謝您的快速回復。我創建了數據庫並在同一個類中實現了所有的數據庫訪問方法。在android中使用sqlite數據庫的最佳方式是什麼? – chathura 2014-12-07 17:16:02
@ chathura2020:沒有單一的「最佳」方式。但是不要關閉你的'SQLiteOpenHelper'(和因此它的'SQLiteDatabase'),直到完全完成它。 – CommonsWare 2014-12-07 17:18:26