• 締切済み

SQLiteは明示的に閉じる

いつもお世話になっております。 androidアプリの開発を行っています。 まだまだ勉強不足なのですが、ご教示お願いいたします。 下記のようにSQLiteでデータの操作をしています。 activityは詳細画面のような感じで、違うnameで複数アクセスされます。 close()を実行すると、closeしていません。みたいなエラーがでて、 close()を実行しないと、selete()が実行できなくなってしまいます。 activity.java ------------------------------ SQLiteHelper dbHelper = new SQLiteHelper(getApplicationContext()); SQLiteDatabase db = dbHelper.getWritableDatabase(); dbHelper.select(db); database.java ------------------------------ public class DatabaseHelper extends SQLiteOpenHelper { public SQLiteHelper(Context context) { super(context, DATABASE_NAME, null, 1); } @Override public void onCreate(SQLiteDatabase db) { db.execSQL("CREATE TABLE " + TABLE_NAME + " (_id integer primary key autoincrement, name text not null)"); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME); onCreate(db); } public select(SQLiteDatabase db, String name) { String sql = "SELECT * FROM " + TABLE_NAME + " WHERE name=" + name; Cursor cursor = db.rawQuery(sql, null); // ↓これが原因かと。 db.close(); } } closeは明示的に書かないといけないのでしょうか。 分かりずらいかもしれませんが、エラーを出さない方法をご教示お願いいたします。 よろしくお願いいたします。

みんなの回答

noname#147388
noname#147388
回答No.1

ログがよめないけど、 エラーログの内容を理解してその対応をする。 以上

関連するQ&A