2016-09-15 3 views
-3

Я пытаюсь обновить некоторые столбцы в строке SQLite в приложении для Android, однако я застрял в этой ошибке, которую я просто не знаю откуда он исходит.android.database.sqlite.SQLiteException: нет такого столбца: при компиляции: UPDATE

android.database.sqlite.SQLiteException: no such column: location (code 1): , while compiling: UPDATE user SET email=?,location=?,mobile=? WHERE id=? 

Это код, который я использовать для обновления информации:

public void updateUserInfo(String mobile, String email, String location) { 
    SQLiteDatabase db = this.getWritableDatabase(); 

    String[] tablei = new String[1]; 
    tablei[0] = "1"; 

    ContentValues values = new ContentValues(); 
    values.put(KEY_MOBILE, mobile); // Mobile 
    values.put(KEY_EMAIL, email); // Email 
    values.put(KEY_LOCATION, location); // Location 

    // Inserting Row 
    //long id = db.update().insert(TABLE_USER, null, values); 
    long id = db.update(TABLE_USER, values, "id=?", tablei); 
    db.close(); // Closing database connection 

    Log.d(TAG, "Info of user updated in sqlite: " + id); 
} 

Это моя таблица, в которой существуют все столбцы используются:

private static final String KEY_ID = "id"; 
    private static final String KEY_LOCATION = "location"; 
          ..... 

    String CREATE_LOGIN_TABLE = "CREATE TABLE " + TABLE_USER + "(" 
      + KEY_ID + " INTEGER PRIMARY KEY," + KEY_NAME + " TEXT," 
      + KEY_EMAIL + " TEXT UNIQUE," + KEY_APIKEY + " TEXT," 
      + KEY_MOBILE + " TEXT," + KEY_LOCATION + " TEXT," 
      + KEY_CREATED_AT + " TEXT" + ")"; 

Спасибо заранее за ваш Помогите !

+2

Вы используете класс DatabaseHelper? Если да, вам нужно увеличить ваш DATABASE_VERSION. Повторная установка APP также может исправить это. – lidox

+0

Вы можете разместить свой код таблицы создания? – adalPaRi

+0

Я удалил и переустановил приложение, и оно сработало! Но я переопределяю метод onUpgrade. Разве этого недостаточно? – Othmane

ответ

3

Я думаю, что вы изменили схему базы данных после первой установки приложения.

Вам необходимо написать сценарий обновления из старой версии базы данных в новую версию. (ALTER TABLE tablename ADD COLUMN ....)

Или удалите и установите приложение еще раз.

+0

да, вы правы, я изменил базу данных. Деинсталляция работала для меня –