0

テーブルからレコード数を取得したいのですが、次のエラーが発生するため取得できません:

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/

どうしたの?なぜ機能しないのですか?

4

2 に答える 2

3

return ステートメントでカーソルをまだ使用しているときに呼び出しcursor.close()た場合、カーソルをまだ使用している場合は、カーソルを閉じることはできません。

ドアを閉めて通り抜けようとするようなものです:)

于 2012-06-19T17:20:16.790 に答える
1

カーソルを閉じて使用する場合は、別の場所にデータを記録して、それを返す必要があります

于 2012-06-19T17:24:14.747 に答える