【发布时间】:2013-11-17 06:12:55
【问题描述】:
我在下面的函数中遇到错误,这不是一个持续的错误。它经常发生,但错误是'java.lang.IllegalStateException:无法执行此操作,因为连接池已被
** if (cursor.moveToFirst()) { **
出错public static DatabaseItem getArticle(String title) {
SQLiteDatabase db = mActivity.getWritableDatabase();
String query = "SELECT * FROM " + Database.DATABASE_TABLE_ARTICLES +
" WHERE " + FEED_TITLE + "=\"" + title + "\"";
Cursor cursor = db.rawQuery(query, null);
if (cursor.moveToFirst()) {
do {
DatabaseItem item = new DatabaseItem(
cursor.getInt(0), // ID
cursor.getString(1), // NAME
cursor.getString(2), // TITLE
cursor.getString(3), // DESCRIPTION
cursor.getString(4), // LINK
cursor.getString(5), // TIME
cursor.getString(6), // THUMBNAIL
cursor.getString(7), // ARTICLE IMAGE URL
cursor.getBlob(8), // ARTICLE IMAGE BYTE
cursor.getString(9) // ARTICLE TEXT
);
return item;
} while (cursor.moveToNext());
}
return null;
}
【问题讨论】:
-
您是否尝试过将 .getReadableDatabase() 更改为 .getWritableDatabase() —— 是的,我知道您没有写任何东西,但有时无论出于何种原因它都有效。
-
您应该检查
Cursor的条目,关闭它,关闭数据库,然后返回布尔结果。 -
用函数和错误更新操作
-
有人吗?还是想不通
标签: android sqlite cursor android-sqlite