如何从SQLite数据库中获取表中所有记录的数量?

时间:2012-06-19 17:18:18

标签: android sqlite

我想从我的表中获取记录数,但我不能,因为我收到此错误:

  

06-19 19:11:12.599:E / AndroidRuntime(1811):java.lang.IllegalStateException:尝试重新打开已经关闭的对象:android.database.sqlite.SQLiteQuery(mSql = SELECT * FROM zapisy )

我的功能:

// Getting contacts Count
public int getContactsCount() {
    String countQuery = "SELECT  * FROM " + TABLE_ZAPISY;
    SQLiteDatabase db = this.getWritableDatabase();
    Cursor cursor = db.rawQuery(countQuery, null);
    cursor.close();

    // return count
    return cursor.getCount();
}

我在此网站上找到了此功能:http://www.androidhive.info/2011/11/android-sqlite-database-tutorial/

怎么了?为什么它不起作用?

2 个答案:

答案 0 :(得分:3)

当你仍然在return语句中使用游标时,你调用了cursor.close(),如果仍在使用游标,则无法关闭游标。

它就像关上一扇门然后试图穿过它一样:)

答案 1 :(得分:1)

你关闭光标然后使用它,你需要在另一个地方记录数据并返回