8

データベースログに挿入しようとすると、catは次のようなエラーを表示しますjava.lang.illegalstateexception database not open android.

しかし、私はを使用してデータベースを開きました

   db = SQLiteDatabase.openDatabase(DATABASE_PATH, null,
                SQLiteDatabase.OPEN_READWRITE);

エラーは頻繁には発生していませんが、その理由を知っている人はいますか?

4

4 に答える 4

13

次のようにしてみてください。

  if (!db.isOpen()) {
       db = getApplicationContext().openOrCreateDatabase(DATABASE_PATH, SQLiteDatabase.OPEN_READWRITE, null);
     }
于 2012-05-29T11:15:14.740 に答える
2

試す

DatabaseHelper dataHelper;
SQLiteDatabase mDb;
    public DbManager openDB() throws SQLException {

    mDb = dataHelper.getWritableDatabase();
    return this;
}

現在のコードを書き直す場所でこのメソッドを呼び出します。

于 2012-05-29T11:11:50.420 に答える
0

このコードを試してください

 public class DataBaseHelper extends SQLiteOpenHelper{
    public SQLiteDatabase openDataBase() throws SQLException{

            //Open the database

            File dbFile = _myContext.getDatabasePath( DB_PATH + DB_NAME ); 
            _myDataBase = SQLiteDatabase.openDatabase(dbFile.toString(), null, SQLiteDatabase.OPEN_READWRITE);

            return _myDataBase;
        }//end of openDataBase() method
}
于 2012-05-29T11:26:14.777 に答える
-1

開いているデータベースを開いている可能性があります。作業が完了するたびにデータベースを閉じます。

于 2012-05-29T11:11:12.647 に答える