SQLite
 sql >> Teknologi Basis Data >  >> RDS >> SQLite

Tidak dapat membuka database dalam mode baca/tulis

Pertanyaan Anda tidak begitu jelas, tetapi saya akan mencoba menjawabnya.

Kemungkinan besar, database Anda:

  1. Belum ada, dan Anda harus membuatnya;
  2. File database Anda hanya dapat dibaca, Anda harus mengubahnya (Pertanyaan ini mungkin terkait).

Untuk #2, daripada menggunakan SQLiteOpenHelper#getReadableDatabase() , gunakan SQLiteOpenHelper#getWritableDatabase

Jika database Anda berada di unit penyimpanan eksternal, Anda memiliki beberapa hal lain untuk diperiksa:

  1. Apakah penyimpanan eksternal saat ini terpasang? Jika tidak, Anda tidak dapat mengakses db.
  2. Apakah dipasang sebagai hanya baca? Jika demikian, Anda harus mengubahnya.
  3. Sudahkah Anda memeriksa jalurnya? Apakah itu benar?

Masalahnya mungkin pada salah satu topik tersebut.

Untuk memeriksa apakah itu dipasang sebagai hanya-baca, coba yang berikut ini:

/* Checks if external storage is available for read and write */
public boolean isExternalStorageWritable() {
    String state = Environment.getExternalStorageState();
    if (Environment.MEDIA_MOUNTED.equals(state)) {
        return true;
    }
    return false;
}

/* Checks if external storage is available to at least read */
public boolean isExternalStorageReadable() {
    String state = Environment.getExternalStorageState();
    if (Environment.MEDIA_MOUNTED.equals(state) ||
        Environment.MEDIA_MOUNTED_READ_ONLY.equals(state)) {
        return true;
    }
    return false;
}

Diambil dari sini.

Untuk info lebih lanjut tentang Environment kelas, silakan merujuk ke dokumen.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Basis data yang telah diisi sebelumnya tidak berfungsi di API 28 tanpa pengecualian tabel seperti itu

  2. android.database.CursorIndexOutOfBoundsException

  3. Memasukkan tanggal dan waktu saat ini dalam database SQLite

  4. Bagaimana cara melewatkan data dari suatu aktivitas ke kelas java

  5. Sintaks kueri SQLite yang disempurnakan di Android