SQL語句包含表中沒有的欄位,報錯no such column:
- Android 2.3.3
- Eclipse Version: 3.7.0
- Console
LogCat 報錯資訊:
- 02-23 11:20:41.360: ERROR/AndroidRuntime(4366): android.database.sqlite.SQLiteException: no such column: iphone: , while compiling: SELECT * FROM Mobile WHERE iphone=? and status=1
- 02-23 11:20:41.360: ERROR/AndroidRuntime(4366): at android.database.sqlite.SQLiteCompiledSql.native_compile(Native Method)
- 02-23 11:20:41.360: ERROR/AndroidRuntime(4366): at android.database.sqlite.SQLiteCompiledSql.compile(SQLiteCompiledSql.java:92)
- 02-23 11:20:41.360: ERROR/AndroidRuntime(4366): at android.database.sqlite.SQLiteCompiledSql.<init>(SQLiteCompiledSql.java:65)
- 02-23 11:20:41.360: ERROR/AndroidRuntime(4366): at android.database.sqlite.SQLiteiphone.<init>(SQLiteiphone.java:83)
- 02-23 11:20:41.360: ERROR/AndroidRuntime(4366): at android.database.sqlite.SQLiteQuery.<init>(SQLiteQuery.java:49)
- 02-23 11:20:41.360: ERROR/AndroidRuntime(4366): at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:42)
- 02-23 11:20:41.360: ERROR/AndroidRuntime(4366): at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1356)
- 02-23 11:20:41.360: ERROR/AndroidRuntime(4366): at android.database.sqlite.SQLiteDatabase.queryWithFactory(SQLiteDatabase.java:1235)
- 02-23 11:20:41.360: ERROR/AndroidRuntime(4366): at android.database.sqlite.SQLiteDatabase.query(SQLiteDatabase.java:1189)
- 02-23 11:20:41.360: ERROR/AndroidRuntime(4366): at android.database.sqlite.SQLiteDatabase.query(SQLiteDatabase.java:1271)
- 02-23 11:20:41.360: ERROR/AndroidRuntime(4366): at com.tmall.nokia.db.MobileDBHelper.find_Iphone(MobileDBHelper.java:55)
- 02-23 11:20:41.360: ERROR/AndroidRuntime(4366): at com.tmall.nokia.MobileDBopt.find_Iphone(MobileDBopt.java:154)
- 02-23 11:20:41.360: ERROR/AndroidRuntime(4366): at com.tmall.nokia.manage.Mobile.startImport(Mobile.java:175)
- 02-23 11:20:41.360: ERROR/AndroidRuntime(4366): at com.tmall.nokia.manage.Mobile$3.run(Mobile.java:117)
- 02-23 11:20:41.360: ERROR/AndroidRuntime(4366): at java.lang.Thread.run(Thread.java:1019)
主要錯誤:
02-23 11:20:41.360: ERROR/AndroidRuntime(4366): android.database.sqlite.SQLiteException: no such column: iphone: , while compiling: SELECT * FROM Mobile WHERE iphone=? and status=1
發生錯誤原因分析:
從Mobile表中查詢iphone時,探索資料庫的Mobile表中沒有iphone這一列。檢查建立資料庫表的代碼,發現在建Mobile表時,確實沒有iphone欄位。
解決辦法:
在建立資料庫的Mobile表時添加iphone列。