【发布时间】:2013-04-25 23:53:51
【问题描述】:
Cursor cursor = db.query(UserTable, null,
"UserName=?", new String[] {username},
null, null, AccessedDate);
当我试图打开我的活动时,我得到了这个 no column found 异常。错误指向上述query line。
java.lang.RuntimeException:无法启动活动 组件信息{com.text.sample/com.text.sample.usercontext.RecentsActivity}: android.database.sqlite.SQLiteException:没有这样的列:用户名 (代码 1):,编译时:SELECT * FROM Patient WHERE UserName=? ORDER BY AccessedDate 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2180) 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230) 在 android.app.ActivityThread.access$600(ActivityThread.java:141) 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234) 在 android.os.Handler.dispatchMessage(Handler.java:99) 在 android.os.Looper.loop(Looper.java:137) 在 android.app.ActivityThread.main(ActivityThread.java:5041) 在 java.lang.reflect.Method.invokeNative(Native Method) 在 java.lang.reflect.Method.invoke(Method.java:511) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560) 在 dalvik.system.NativeStart.main(Native Method) 原因: android.database.sqlite.SQLiteException:没有这样的列:用户名 (代码 1):,编译时:SELECT * FROM Patient WHERE UserName=? ORDER BY AccessedDate 在 android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native 方法)在 android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:882) 在 android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:493) 在 android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588) 在 android.database.sqlite.SQLiteProgram.(SQLiteProgram.java:58) 在 android.database.sqlite.SQLiteQuery.(SQLiteQuery.java:37) 在 android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:44) 在 android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1314) 在 android.database.sqlite.SQLiteDatabase.queryWithFactory(SQLiteDatabase.java:1161) 在 android.database.sqlite.SQLiteDatabase.query(SQLiteDatabase.java:1032) 在 android.database.sqlite.SQLiteDatabase.query(SQLiteDatabase.java:1200) 在 com.text.sample.common.DAL.getAllPatients(DAL.java:104) 在 com.text.sample.usercontext.RecentsActivity.onCreate(RecentsActivity.java:38) 在 android.app.Activity.performCreate(Activity.java:5104) 在 android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080) 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144) ... 11 更多
【问题讨论】:
-
您确定该列存在吗?此外,您正在引用一个名为
UserTable的变量,但它是从Patient表中选择的。对吗? -
@JoeF:它引用了患者数据库,变量 UserTable 保存患者数据库值。
-
您确定用户名在您的表格中拼写相同吗?
-
有没有我可以手动删除数据库。
-
清除设备中的数据