SQLiteReadOnlyDatabaseException: attempt to write a readonly database

后端 未结 3 1998
暖寄归人
暖寄归人 2021-01-22 00:00

Just changed my data that are hard-code into database to using SQLite Database Browser. Before I changed all my query works fine but errors occurs when I changed. I can\'t do th

相关标签:
3条回答
  • 2021-01-22 00:48

    You cannot write to a database that is stored in your assets folder as that is part of your apk and cannot be changed.

    When your app runs you should check for the existence of a database (in the normal databases folder) and if it does not exist, copy the database from your assets folder and use that instead.

    See these links for more info.

    http://www.devx.com/wireless/Article/40842

    Ship an application with a database

    0 讨论(0)
  • 2021-01-22 00:52
    public void openDataBase() throws SQLException{
    
        //Open the database
        String myPath = DB_PATH + DATABASE_NAME;
        ourDatabase = SQLiteDatabase.openDatabase(myPath, null, SQLiteDatabase.OPEN_READONLY);
    
    }
    

    You must change SQLiteDatabase.OPEN_READONLY to SQLiteDatabase.OPEN_READWRITE, because OPEN_READONLY only allows to read not write.

    0 讨论(0)
  • 2021-01-22 01:03

    You need to make a writable database if you want to insert values in database need to add these lines in constructor

    DBHelper helper = new DBHelper (mCtx);
                    this.db = helper.getWritableDatabase();
    
          public Restaurant(Context c)
    {   
        myContext = c;
    
                    DBHelper helper = new DBHelper (mCtx);
                this.db = helper.getWritableDatabase();
    }           
    
    0 讨论(0)
提交回复
热议问题