2014-01-22 6 views
-1

sqlite에서 데이터를 검색하여 대시 보드에 표시하려고하지만 오류가 표시됩니다.sqlite에서 데이터를 검색하는 중 오류가 발생했습니다.

CatLog :

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); 
      } 
     }); 
    } 

답변

4

SELECT COUNT(*)는 하나의 열을 반환합니다. step_2.getInt(5)으로 액세스하려고하는 열 색인이 없습니다.

해결책을 제안하는 데 충분한 정보가 없습니다. 나는 단지 예외를 설명 할 수있다.

+0

그래서 Select * 만 사용해야합니다. – SopheakVirak

+0

모든 행에서 모든 열을 가져 오려면 예. – Aiapaec

+0

모든 수학 행의 모든 ​​열을 원한다면 예. 'moveTo ...()'의 결과를 확인하고 모든 결과 행을 반복하십시오. – laalto

관련 문제