2016-09-29 47 views
-2

我已經當我啓動應用程序這個問題,這讓我這個錯誤:DB:「表」已經沒有列命名爲「名欄」

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 

但我想我已經進入了「自治市「在每個部分。這是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

嘗試創建一個新的數據庫表。 –

+1

您最近是否在數據庫中沒有該列的情況下運行該應用程序,並且未能更改數據庫版本以告訴應用程序重新創建表格? –

+0

在以前的應用程序運行之後,該列肯定已添加**。 –

回答

0

可能你必須增加你的數據庫版本。

增加後,將調用onUpgrade方法。

因此,您可以在此放置所有表格並致電onCreate

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); 
} 
相關問題