使用CursorIndexOutOfBounds异常停止活动

时间:2013-10-07 08:42:36

标签: java android cursor

大家好我编译代码时遇到错误,我无法理解它是什么意思..我需要一些帮助......

在下方提供我的代码..

            public String  updateEntry(String empcode,String confirm_password)
             {
       String update="Update Signup set PASSWORD = '" + confirm_password + "' " + " 
       WHERE EMPLOYEE_CODE = " + " '" + empcode + "' ";


       Cursor cursor=db.rawQuery(update, null);

        String uppassword=cursor.getString(cursor.getColumnIndex("PASSWORD"));

        return uppassword;

           }

代码返回正确的输出......但是错误存在......活动停止了..

给我的logcat下面..

10-07 08:34:09.474: E/AndroidRuntime(21657): android.database.CursorIndexOutOfBoundsException: Index -1 requested, with a size of 0

10-07 08:34:09.474: E/AndroidRuntime(21657):    at android.database.AbstractCursor.checkPosition(AbstractCursor.java:424)

10-07 08:34:09.474: E/AndroidRuntime(21657):    at 
android.database.AbstractWindowedCursor.checkPosition(AbstractWindowedCursor.java:136)

10-07 08:34:09.474: E/AndroidRuntime(21657):    at android.database.AbstractWindowedCursor.getString(AbstractWindowedCursor.java:50)

10-07 08:34:09.474: E/AndroidRuntime(21657):    at com.neochat.LoginDataBaseAdapter.updateEntry(LoginDataBaseAdapter.java:145)

10-07 08:34:09.474: E/AndroidRuntime(21657):    at com.neochat.Forgotpassword.attemptforgot(Forgotpassword.java:157)

10-07 08:34:09.474: E/AndroidRuntime(21657):    at com.neochat.Forgotpassword$1.onClick(Forgotpassword.java:54)

10-07 08:34:09.474: E/AndroidRuntime(21657):    at android.view.View.performClick(View.java:4204)

10-07 08:34:09.474: E/AndroidRuntime(21657):    at android.view.View$PerformClick.run(View.java:17355)

10-07 08:34:09.474: E/AndroidRuntime(21657):    at android.os.Handler.handleCallback(Handler.java:725)

10-07 08:34:09.474: E/AndroidRuntime(21657):    at android.os.Looper.loop(Looper.java:137)

10-07 08:34:09.474: E/AndroidRuntime(21657):    at android.app.ActivityThread.main(ActivityThread.java:5041)

10-07 08:34:09.474: E/AndroidRuntime(21657):    at java.lang.reflect.Method.invokeNative(Native Method)

10-07 08:34:09.474: E/AndroidRuntime(21657):    at java.lang.reflect.Method.invoke(Method.java:511)

10-07 08:34:09.474: E/AndroidRuntime(21657):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)

10-07 08:34:09.474: E/AndroidRuntime(21657):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
10-07 08:34:09.474: E/AndroidRuntime(21657):    at dalvik.system.NativeStart.main(Native Method)

3 个答案:

答案 0 :(得分:0)

您无法在getString命令上调用UPDATE。 这只适用于SELECT命令

答案 1 :(得分:0)

在从游标检索数据之前,您需要调用cursor.moveToFirst()或cursor.moveToNext()。

答案 2 :(得分:0)

这不是它的工作原理。更新查询(最好使用专用更新方法,btw)返回受影响的行数。

更新查询的结果中永远不会有“PASSWORD”列。