我在我的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