2017-09-20 20 views
0

私のクエリは、私のクエリが与えられたアンドロイドsqliteのグループクエリエラー:android.database.CursorIndexOutOfBoundsException:アンドロイドのsqliteで

no_question_list
MYデータベース名をtest_id、

MY列名のトピック、correct_answerとtotal_mark以下に示します。ここ

  String query = "SELECT topic,SUM(correct_answer),SUM(total_mark) from no_question_list Where test_id='" + test_id + "'" + "group by topic,correct_answer,total_mark"; 
      Cursor c = database.rawQuery(query , null); 

      if (c != null) { 
       if (c.moveToFirst()) { 
       do { 
        topic= c.getString(0); 
       } 
       while (c.moveToNext()); 
      } 
     } 

カーソルの値でエラーを取得するとき、私は、クエリエラーなしを実行すると
                 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.stepone.netquestion/com.stepone.netquestion.ResultActivity}: android.database.CursorIndexOutOfBoundsException: Index 0 requested, with a size of 0 

と私はこのカーソルの一部を試してみました、それは事前に答えを

    if (c != null) { 
       if (c.moveToFirst()) { 
       do { 
        String topic =c.getString(c.getColumnIndex("topic"));      
        } 
       while (c.moveToNext()); 
      } 

感謝を実行doest

答えて

0

私はあなたがこのテストであれば必要ないと思うの(c!= nullの)このコードを試してみてください

public String getCol_MPW(){ 

    db = getReadableDatabase(); 
    String q = "SELECT * FROM masterPW"; 
    Cursor cursor = db.rawQuery(q,null); 

    if(cursor.moveToFirst()){ 
     int i = cursor.getInt(cursor.getColumnIndex(Col_IDI)); 
     str = cursor.getString(cursor.getColumnIndex(Col_MPW)); 
    } 
    cursor.close(); 
    db.close(); 

    return str; 
    // This routine called from MainActivity determine's if a 
    // password has been entered in the db table named "TABLE_PW" 
    // See onLoad() method in MainActivity 
} 
関連する問題