2011-03-08 51 views
-1

我已經做了兩個SQLite的一個程序。它運行完美。在添加與上面相同的其他列之後,我得到一個錯誤。爲什麼發生這種情況?爲什麼在向SQLite表中添加列時出現此錯誤?

堆棧跟蹤:

03-08 09:16:59.570: ERROR/AndroidRuntime(247): Uncaught handler: thread main exiting due to uncaught exception 
03-08 09:16:59.621: ERROR/AndroidRuntime(247):  java.lang.RuntimeException: Unable to start activity ComponentInfo{com.mb.demo/com.mb.demo.DemoActivity}: android.database.sqlite.SQLiteException: table table1 has no column named logitude: , while compiling: insert into table1(name,address,logitude,latitude,contact)values(?,?,?,?,?) 
03-08 09:16:59.621: ERROR/AndroidRuntime(247): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2496) 
+0

異常說這一切,'android.database.sqlite.SQLiteException:表table1沒有名爲logitude:的列,而編譯時:insert into table1'。您認爲您添加的列未實際添加到數據庫中。順便說一句,你如何添加列? – Mudassir 2011-03-08 04:32:06

+0

是的,但爲什麼我們不能使用相同的創建表? – user1402876 2011-03-08 04:45:11

回答

2

這是出奇的像一個問題,我剛纔已經回答這裏: SQLite Database (why do this?)

如果在onCreate()方法添加一列一個表,你就會有升級數據庫版本或刪除應用程序的用戶數據,以便onCreate()實際觸發。否則,您的應用程序將運行,已經以該名稱查看數據庫,並且具有相同版本(表只有2列),並跳過onCreate(),因此您的表不會重新創建,並且您的插入失敗。

編輯:另一種可能性是您的'經度'錯字導致了一個問題。如果表格名稱拼寫正確的是'經度',則插入將失敗,如上所述。

相關問題