Проблемы с SQLiteException: нет такой таблицы - PullRequest
0 голосов
/ 16 апреля 2020

У меня есть база данных с двумя таблицами, и каждый раз, когда я пытаюсь добавить новый элемент во вторую таблицу, он говорит, что такой таблицы нет. Пожалуйста, помогите.

DatabaseHelper:

@Override
    public void onCreate(SQLiteDatabase db) {
        String createTable = "CREATE TABLE " + TableName + " ( "+COL_1 +" INTEGER PRIMARY KEY AUTOINCREMENT, "+COL_2+ " TEXT, "+COL_3+ " TEXT, "+COL_4+" TEXT, "+COL_5+ " INTEGER)";
        String createSubjectsTable = "CREATE TABLE "+SubjectsTableName+" ( "+Subjects_COL_1+" INTEGER PRIMARY KEY AUTOINCREMENT, "+Subjects_COL_2+" TEXT, "+Subjects_COL_3+" TEXT, "+Subjects_COL_4+" TEXT, "+Subjects_COL_5+" TEXT)";
        db.execSQL(createTable);
        db.execSQL(createSubjectsTable);
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        db.execSQL("DROP TABLE IF EXISTS "+ TableName);
        db.execSQL("DROP TABLE IF EXISTS "+SubjectsTableName);
        onCreate(db);
    }

Метод добавления из DatabaseHelper:

 public boolean addSubjectData (String name, String letters, String teacher, String color){
        SQLiteDatabase db = this.getWritableDatabase();
        ContentValues contentValues = new ContentValues();
        contentValues.put(Subjects_COL_2,name);
        contentValues.put(Subjects_COL_3,letters);
        contentValues.put(Subjects_COL_4,teacher);
        contentValues.put(Subjects_COL_5,color);
        long result = db.insert(SubjectsTableName, null, contentValues);
        if (result==-1){
            return false;
        }
        else{
            return true;
        }
    }

Место, где создается новый элемент:

saveBtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if(name!=null && letters!=null && color!=null){
                    mDatabase.addSubjectData(name,letters,teacher,color);
                } 
            }
        });

1 Ответ

0 голосов
/ 16 апреля 2020

Вы, возможно, изменили схему и не увеличили версию БД, поэтому у вас может быть два варианта:

  • увеличить версию БД
  • или если вы не опубликовали sh предыдущая версия приложения удалить приложение из эмулятора и запустить проект
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...