【发布时间】:2010-08-21 04:14:00
【问题描述】:
我得到一个没有这样的列:_id 错误。是的,我的日志表中有一个“_id”列。
我收到此代码的错误:
mDb.execSQL("UPDATE"+DATABASE_PLANTS_TABLE+"SET"+KEY_PLANT_DAYS+ " = (SELECT COUNT(*) FROM "+DATABASE_PLANTS_TABLE+" WHERE " +DATABASE_JOURNAL_TABLE+"."+KEY_JROWID+" = "+DATABASE_PLANTS_TABLE +"." +KEY_PLANT_HOMEID+")");以下代码有效:
mDb.execSQL("更新 "+DATABASE_JOURNAL_TABLE+" 设置 "+KEY_JOURNAL_PLANTS+ " = (SELECT COUNT(*) FROM "+DATABASE_PLANTS_TABLE+" WHERE " +DATABASE_JOURNAL_TABLE+"."+KEY_JROWID+" = "+DATABASE_PLANTS_TABLE +"." +KEY_PLANT_HOMEID+")");LogCat:
08-21 00:07:46.614: 错误/数据库(12943): 失败 1 (没有这样的列: journals._id) 在 0x421470 上准备“更新植物 SET 天 = (SELECT COUNT(*) FROM 植物 WHERE journals._id =植物.homeid)'。 08-21 00:07:46.614: 调试/AndroidRuntime(12943): 关闭虚拟机 08-21 00:07:46.614: WARN/dalvikvm(12943): threadid=3: 线程以未捕获的异常退出 (group=0x4001b390) 08-21 00:07:46.614:错误/AndroidRuntime(12943):未捕获的处理程序:线程主因未捕获的异常而退出 08-21 00:07:46.624: 错误/AndroidRuntime(12943): java.lang.RuntimeException: 无法启动活动 ComponentInfo{com.growjournal.beta/com.grower.beta.plantsList}: android.database.sqlite.SQLiteException : 没有这样的列: journals._id: UPDATE 植物 SET days = (SELECT COUNT(*) FROM 植物 WHERE journals._id =plants.homeid) 08-21 00:07:46.624: 错误/AndroidRuntime(12943): 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2596) 08-21 00:07:46.624: 错误/AndroidRuntime(12943): 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2621) 08-21 00:07:46.624: 错误/AndroidRuntime(12943): 在 android.app.ActivityThread.access$2200(ActivityThread.java:126) 08-21 00:07:46.624: 错误/AndroidRuntime(12943): 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1932) 08-21 00:07:46.624: 错误/AndroidRuntime(12943): 在 android.os.Handler.dispatchMessage(Handler.java:99) 08-21 00:07:46.624: 错误/AndroidRuntime(12943): 在 android.os.Looper.loop(Looper.java:123) 08-21 00:07:46.624: 错误/AndroidRuntime(12943): 在 android.app.ActivityThread.main(ActivityThread.java:4595) 08-21 00:07:46.624: 错误/AndroidRuntime(12943): 在 java.lang.reflect.Method.invokeNative(Native Method) 08-21 00:07:46.624: 错误/AndroidRuntime(12943): 在 java.lang.reflect.Method.invoke(Method.java:521) 08-21 00:07:46.624: 错误/AndroidRuntime(12943): 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860) 08-21 00:07:46.624: 错误/AndroidRuntime(12943): 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618) 08-21 00:07:46.624:错误/AndroidRuntime(12943):在 dalvik.system.NativeStart.main(本机方法) 08-21 00:07:46.624: 错误/AndroidRuntime(12943): 由: android.database.sqlite.SQLiteException: 没有这样的列: journals._id: UPDATE 植物 SET days = (SELECT COUNT(*) FROM 植物 WHERE journals ._id = 植物.homeid) 08-21 00:07:46.624:错误/AndroidRuntime(12943):在 android.database.sqlite.SQLiteDatabase.native_execSQL(本机方法)【问题讨论】: