2016-09-15 5 views
-3

Ich versuche, einige Spalten in einer SQLite in einer Android-App in einer Zeile zu aktualisieren, jedoch bin ich bei diesem Fehler fest, den ich einfach nicht kenne Woher kommt es.android.database.sqlite.SQLiteException: keine solche Spalte: beim Kompilieren: UPDATE

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

Dies ist der Code, den ich info verwenden zu aktualisieren:

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); 
} 

Das ist mein Tisch gibt, in denen sich alle Spalten verwendet:

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" + ")"; 

Vielen Dank im Voraus für Ihre Hilfe !

+2

Verwenden Sie die DatabaseHelper-Klasse? Wenn ja, müssen Sie Ihre DATABASE_VERSION erhöhen. Neuinstallation der APP könnte es auch beheben. – lidox

+0

können Sie den Code Ihrer Erstellungstabelle posten? – adalPaRi

+0

Ich habe die App gelöscht und neu installiert und es hat funktioniert! Aber ich überschreibe OnUpgrade-Methode. Ist das nicht genug? – Othmane

Antwort

3

Ich glaube, Sie haben das Datenbankschema nach der ersten Installation der App geändert.

Sie müssen ein Update-Skript von der alten Version der Datenbank auf die neue Version schreiben. (ALTER TABLE tablename ADD COLUMN ....)

Oder löschen und installieren Sie die App erneut.

+0

ja du hast Recht, ich habe die Datenbank geändert. Deinstallieren funktionierte für mich –

Verwandte Themen