2016-09-29 5 views
-2

ich dieses Problem habe genannt, wenn ich die App wurde gestartet, es hat mich diesen Fehler:DB: „Tisch“ hat keine Spalte „Name Spalte“

E/SQLiteLog: (1) table geophysics_table has no column named municipality 
E/SQLiteDatabase: Error inserting id_grid=1 culture_type= resolution_survey= soil_type= coordinates= finish_date= start_date= municipality= site= software= range= ctr= assistans= frequency_feeler= igm= max_depth= instrument_type= area_investigated= description_site= n_tab= author= acquisition_method= survey_method= ref_geo_map= 
        android.database.sqlite.SQLiteException: table geophysics_table has no column named municipality (code 1): , while compiling: INSERT INTO geophysics_table(id_grid,culture_type,resolution_survey,soil_type,coordinates,finish_date,start_date,municipality,site,software,range,ctr,assistans,frequency_feeler,igm,max_depth,instrument_type,area_investigated,description_site,n_tab,author,acquisition_method,survey_method,ref_geo_map) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) 
         at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method) 
         at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:889) 
         at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:500) 
         at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588) 
         at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:58) 
         at android.database.sqlite.SQLiteStatement.<init>(SQLiteStatement.java:31) 
         at android.database.sqlite.SQLiteDatabase.insertWithOnConflict(SQLiteDatabase.java:1469) 
         at android.database.sqlite.SQLiteDatabase.insert(SQLiteDatabase.java:1341) 
         at com.example.giuse.secondly.DBTools.insertGrid(DBTools.java:85) 
         at com.example.giuse.secondly.NewSheet.saveData(NewSheet.java:104) 
         at java.lang.reflect.Method.invoke(Native Method) 
         at java.lang.reflect.Method.invoke(Method.java:372) 
         at android.view.View$1.onClick(View.java:4015) 
         at android.view.View.performClick(View.java:4780) 
         at android.view.View$PerformClick.run(View.java:19866) 
         at android.os.Handler.handleCallback(Handler.java:739) 
         at android.os.Handler.dispatchMessage(Handler.java:95) 
         at android.os.Looper.loop(Looper.java:135) 
         at android.app.ActivityThread.main(ActivityThread.java:5254) 
         at java.lang.reflect.Method.invoke(Native Method) 
         at java.lang.reflect.Method.invoke(Method.java:372) 
         at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903) 
         at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698) 
W/EGL_emulation: eglSurfaceAttrib not implemented 
W/OpenGLRenderer: Failed to set EGL_SWAP_BEHAVIOR on surface 0x7fa4f2464180, error=EGL_SUCCESS 

Aber ich glaube, ich eingegeben haben die " Gemeinde "in jedem Teil. Dies ist der Code der db:

@Override 
public void onCreate(SQLiteDatabase database) { 

    String query = "CREATE TABLE geophysics_table (id_grid INTEGER PRIMARY KEY, site TEXT, " + 
      "n_tab TEXT, municipality TEXT, ctr TEXT, igm TEXT, coordinates TEXT, ref_geo_map TEXT, description_site TEXT, soil_type TEXT, culture_type TEXT, survey_method TEXT, instrument_type TEXT, resolution_survey TEXT, area_investigated TEXT, acquisition_method TEXT, frequency_feeler TEXT, range TEXT, max_depth TEXT, software TEXT, author TEXT, assistants TEXT, start_date TEXT, finish_date TEXT)"; 
+0

Versuchen eine neue DB-Tabelle erstellen. –

+1

Haben Sie kürzlich die App ohne diese Spalte in der Datenbank ausgeführt und die Datenbankversion nicht geändert, damit die App die Tabelle neu erstellt? –

+0

Diese Spalte wurde sicherlich ** nach ** einem vorherigen App-Lauf hinzugefügt. –

Antwort

0

Wahrscheinlich müssen Sie Ihre Datenbankversion erhöhen.

Nach Erhöhung wird onUpgrade Methode aufgerufen.

So können Sie alle Ihre Tabellen hier fallen lassen und onCreate anrufen.

Beispiel

public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 
    db.execSQL("DROP TABLE IF EXISTS firstTable"); 
    db.execSQL("DROP TABLE IF EXISTS secondTable"); 
    db.execSQL("DROP TABLE IF EXISTS thirdTable"); 
    onCreate(db); 
} 
Verwandte Themen