2016-09-15 8 views
-3

私はAndroidアプリケーションでSQLiteの行の一部を更新しようとしていますが、わかりませんどこから来たのか。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

はい、あなたは正しいです、私はデータベースを変更しました。アンインストールは私のために働いた –

関連する問題