sqlite尝试检索数据时出错

时间:2014-01-22 15:05:34

标签: android sqlite

我想从sqlite中检索数据以显示在我的仪表板上,但它显示错误。

目录下载:

01-22 09:31:04.484: E/AndroidRuntime(2174): FATAL EXCEPTION: main
01-22 09:31:04.484: E/AndroidRuntime(2174): java.lang.RuntimeException: Unable to start activity ComponentInfo{kids.game.fruitsmemorygame/kids.game.fruitsmemorygame.level_selection}: java.lang.IllegalStateException: Couldn't read row 0, col 5 from CursorWindow.  Make sure the Cursor is initialized correctly before accessing data from it.
01-22 09:31:04.484: E/AndroidRuntime(2174):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2211)
01-22 09:31:04.484: E/AndroidRuntime(2174):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261)
01-22 09:31:04.484: E/AndroidRuntime(2174):     at android.app.ActivityThread.access$600(ActivityThread.java:141)
01-22 09:31:04.484: E/AndroidRuntime(2174):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256)
01-22 09:31:04.484: E/AndroidRuntime(2174):     at android.os.Handler.dispatchMessage(Handler.java:99)
01-22 09:31:04.484: E/AndroidRuntime(2174):     at android.os.Looper.loop(Looper.java:137)
01-22 09:31:04.484: E/AndroidRuntime(2174):     at android.app.ActivityThread.main(ActivityThread.java:5103)
01-22 09:31:04.484: E/AndroidRuntime(2174):     at java.lang.reflect.Method.invokeNative(Native Method)
01-22 09:31:04.484: E/AndroidRuntime(2174):     at java.lang.reflect.Method.invoke(Method.java:525)
01-22 09:31:04.484: E/AndroidRuntime(2174):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
01-22 09:31:04.484: E/AndroidRuntime(2174):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
01-22 09:31:04.484: E/AndroidRuntime(2174):     at dalvik.system.NativeStart.main(Native Method)
01-22 09:31:04.484: E/AndroidRuntime(2174): Caused by: java.lang.IllegalStateException: Couldn't read row 0, col 5 from CursorWindow.  Make sure the Cursor is initialized correctly before accessing data from it.
01-22 09:31:04.484: E/AndroidRuntime(2174):     at android.database.CursorWindow.nativeGetLong(Native Method)
01-22 09:31:04.484: E/AndroidRuntime(2174):     at android.database.CursorWindow.getLong(CursorWindow.java:507)
01-22 09:31:04.484: E/AndroidRuntime(2174):     at android.database.CursorWindow.getInt(CursorWindow.java:574)
01-22 09:31:04.484: E/AndroidRuntime(2174):     at android.database.AbstractWindowedCursor.getInt(AbstractWindowedCursor.java:69)
01-22 09:31:04.484: E/AndroidRuntime(2174):     at kids.game.fruitsmemorygame.level_selection.onCreate(level_selection.java:145)
01-22 09:31:04.484: E/AndroidRuntime(2174):     at android.app.Activity.performCreate(Activity.java:5133)
01-22 09:31:04.484: E/AndroidRuntime(2174):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
01-22 09:31:04.484: E/AndroidRuntime(2174):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2175)
01-22 09:31:04.484: E/AndroidRuntime(2174):     ... 11 more

的SQLite

public Cursor getFRUIT_LEVEL_STEP_2()
{
    Cursor step_2 = sqLiteDatabase.rawQuery("SELECT count(*) FROM FRUIT WHERE " + KEY_RESULT + "='Pass' AND " + KEY_LEVEL_STEP_OK + "=1 " + "ORDER BY " + KEY_ID + " DESC LIMIT 1", null); 
    return step_2;
}

活动

step_2 = mySQLiteAdapter.getFRUIT_LEVEL_STEP_2();
step_2.moveToFirst();
    int count2 = step_2.getInt(0);
    int score2 = step_2.getInt(5);
    if(count2 != 0)
    {
        if(score2 == 50)
        {
            btn_l2.setBackgroundResource(R.drawable.star_1);
        }
        if(score2 == 75)
        {
            btn_l2.setBackgroundResource(R.drawable.star_2);
        }
        if(score2 == 100)
        {
            btn_l2.setBackgroundResource(R.drawable.star_3);
        }
        l2.setText("2");
        l2.setBackgroundResource(R.drawable.key_normal);
        l2.setOnClickListener(new OnClickListener()
        {
            @Override
            public void onClick(View v)
            {
                click.start();
                Intent i = new Intent();
                i.setClassName("kids.iq.kidsiqpicturesquestionfull", "kids.iq.kidsiqpicturesquestionfull.fruit_2");
                startActivity(i);
            }
        });
    }

1 个答案:

答案 0 :(得分:4)

SELECT COUNT(*)只返回一列。您尝试使用step_2.getInt(5)访问时没有列索引5。

问题中没有足够的信息来提出解决方案。我可以解释这个例外。

相关问题