title: How to read more than one record of one row from SQLite table?
body: <p>I got a database called test_database.
  And I got a table called <code>tbl_marks</code>.
  In <code>tbl_marks</code> there are following rows:</p>
  
  <ul>
  <li>_id </li>
  <li>name</li>
  <li>subid</li>
  <li>gewicht </li>
  <li>datum</li>
  </ul>
  
  <p>There are 4 entries. two with subid 1 and the other 2 with subid 2.</p>
  
  <p>Now I like to do following:</p>
  
  <pre><code>SELECT * FROM tbl_marks WHERE subid = 1;
  </code></pre>
  
  <p>So finally I like to list all marks with <code>subid</code> 1, 2, 3 or what ever in a listview.</p>
  
  <p>How can I do that by cursor?</p>
  
  <p>I was trying to learn it by a tutorial but it failed...</p>
  
  <p><a href="http://www.higherpass.com/Android/Tutorials/Accessing-Data-With-Android-Cursors/" rel="nofollow">Higherpass Android Tutorial Accessing-Data-With-Android-Cursors</a></p>
  
  <p><a href="http://www.anddev.org/working_with_the_sqlite-database_-_cursors-t319.html" rel="nofollow">Anddev Working with the sqlite database - Cursors</a></p>
  
  <p>Code: The commented part is what I got before (it listed everything)</p>
  
  <pre><code>private void fillData() {
      // Get all of the notes from the database and create the item list
  
      mDbHelper.open_database_rw();
      Cursor mCursor = db.rawQuery("SELECT _id, subid, name, mark, gewicht, datum FROM tbl_marks ORDER BY subid;", null);
      startManagingCursor(mCursor);
      if (mCursor != null) {
           int intName = mCursor.getColumnIndexOrThrow("subid");
  
            do {
                teststring = mCursor.getString(intName);
  
                String[] from = new String[] { dbHelper.KEY_NAME_MARKS, dbHelper.KEY_MARK_MARKS, dbHelper.KEY_GEWICHT_MARKS, dbHelper.KEY_DATUM_MARKS};
                int[] to = new int[] {R.id.txt_marks_row, R.id.txt_note, R.id.txt_gewicht, R.id.txt_datum};
  
  
                SimpleCursorAdapter notes = new SimpleCursorAdapter(this, R.layout.show_marks, mCursor, from, to);
                setListAdapter(notes);
            } while (mCursor.moveToNext());
  
      }
  </code></pre>
  
  <p>LogCat says that the column subid does not exists. But it's there and the db has been opened.</p>
  
  <pre><code>02-07 11:30:00.500: D/dalvikvm(9913): GC_EXTERNAL_ALLOC freed 54K, 50% free 2694K/5379K, external 0K/0K, paused 56ms
  02-07 11:30:00.535: D/dalvikvm(9913): GC_EXTERNAL_ALLOC freed 4K, 50% free 2698K/5379K, external 13K/523K, paused 27ms
  02-07 11:30:10.457: D/AndroidRuntime(9913): Shutting down VM
  02-07 11:30:10.457: W/dalvikvm(9913): threadid=1: thread exiting with uncaught exception (group=0x40235568)
  02-07 11:30:10.457: E/AndroidRuntime(9913): FATAL EXCEPTION: main
  02-07 11:30:10.457: E/AndroidRuntime(9913): java.lang.RuntimeException: Unable to start activity ComponentInfo{test.marco.notenha/test.marco.notenha.mark}: java.lang.IllegalArgumentException: column 'subid' does not exist
  02-07 11:30:10.457: E/AndroidRuntime(9913):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1664)
  02-07 11:30:10.457: E/AndroidRuntime(9913):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1680)
  02-07 11:30:10.457: E/AndroidRuntime(9913):     at android.app.ActivityThread.access$1500(ActivityThread.java:117)
  02-07 11:30:10.457: E/AndroidRuntime(9913):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
  02-07 11:30:10.457: E/AndroidRuntime(9913):     at android.os.Handler.dispatchMessage(Handler.java:99)
  02-07 11:30:10.457: E/AndroidRuntime(9913):     at android.os.Looper.loop(Looper.java:130)
  02-07 11:30:10.457: E/AndroidRuntime(9913):     at android.app.ActivityThread.main(ActivityThread.java:3703)
  02-07 11:30:10.457: E/AndroidRuntime(9913):     at java.lang.reflect.Method.invokeNative(Native Method)
  02-07 11:30:10.457: E/AndroidRuntime(9913):     at java.lang.reflect.Method.invoke(Method.java:507)
  02-07 11:30:10.457: E/AndroidRuntime(9913):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841)
  02-07 11:30:10.457: E/AndroidRuntime(9913):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599)
  02-07 11:30:10.457: E/AndroidRuntime(9913):     at dalvik.system.NativeStart.main(Native Method)
  02-07 11:30:10.457: E/AndroidRuntime(9913): Caused by: java.lang.IllegalArgumentException: column 'subid' does not exist
  02-07 11:30:10.457: E/AndroidRuntime(9913):     at android.database.AbstractCursor.getColumnIndexOrThrow(AbstractCursor.java:314)
  02-07 11:30:10.457: E/AndroidRuntime(9913):     at test.marco.notenha.mark.fillData(mark.java:180)
  02-07 11:30:10.457: E/AndroidRuntime(9913):     at test.marco.notenha.mark.onCreate(mark.java:70)
  02-07 11:30:10.457: E/AndroidRuntime(9913):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
  02-07 11:30:10.457: E/AndroidRuntime(9913):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1628)
  02-07 11:30:10.457: E/AndroidRuntime(9913):     ... 11 more
  </code></pre>
  
  <p>That's line 180: int intName = mCursor.getColumnIndexOrThrow("subid");</p>
  
  <pre><code>02-07 11:52:26.304: D/dalvikvm(10075): GC_EXTERNAL_ALLOC freed 48K, 50% free 2694K/5379K, external 0K/0K, paused 38ms
  02-07 11:52:26.339: D/dalvikvm(10075): GC_EXTERNAL_ALLOC freed 4K, 50% free 2698K/5379K, external 13K/523K, paused 30ms
  02-07 11:52:29.433: D/AndroidRuntime(10075): Shutting down VM
  02-07 11:52:29.433: W/dalvikvm(10075): threadid=1: thread exiting with uncaught exception (group=0x40235568)
  02-07 11:52:29.437: E/AndroidRuntime(10075): FATAL EXCEPTION: main
  02-07 11:52:29.437: E/AndroidRuntime(10075): java.lang.RuntimeException: Unable to start activity ComponentInfo{test.marco.notenha/test.marco.notenha.mark}: android.database.CursorIndexOutOfBoundsException: Index -1 requested, with a size of 3
  02-07 11:52:29.437: E/AndroidRuntime(10075):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1664)
  02-07 11:52:29.437: E/AndroidRuntime(10075):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1680)
  02-07 11:52:29.437: E/AndroidRuntime(10075):    at android.app.ActivityThread.access$1500(ActivityThread.java:117)
  02-07 11:52:29.437: E/AndroidRuntime(10075):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
  02-07 11:52:29.437: E/AndroidRuntime(10075):    at android.os.Handler.dispatchMessage(Handler.java:99)
  02-07 11:52:29.437: E/AndroidRuntime(10075):    at android.os.Looper.loop(Looper.java:130)
  02-07 11:52:29.437: E/AndroidRuntime(10075):    at android.app.ActivityThread.main(ActivityThread.java:3703)
  02-07 11:52:29.437: E/AndroidRuntime(10075):    at java.lang.reflect.Method.invokeNative(Native Method)
  02-07 11:52:29.437: E/AndroidRuntime(10075):    at java.lang.reflect.Method.invoke(Method.java:507)
  02-07 11:52:29.437: E/AndroidRuntime(10075):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841)
  02-07 11:52:29.437: E/AndroidRuntime(10075):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599)
  02-07 11:52:29.437: E/AndroidRuntime(10075):    at dalvik.system.NativeStart.main(Native Method)
  02-07 11:52:29.437: E/AndroidRuntime(10075): Caused by: android.database.CursorIndexOutOfBoundsException: Index -1 requested, with a size of 3
  02-07 11:52:29.437: E/AndroidRuntime(10075):    at android.database.AbstractCursor.checkPosition(AbstractCursor.java:580)
  02-07 11:52:29.437: E/AndroidRuntime(10075):    at android.database.AbstractWindowedCursor.checkPosition(AbstractWindowedCursor.java:214)
  02-07 11:52:29.437: E/AndroidRuntime(10075):    at android.database.AbstractWindowedCursor.getString(AbstractWindowedCursor.java:41)
  02-07 11:52:29.437: E/AndroidRuntime(10075):    at test.marco.notenha.mark.fillData(mark.java:183)
  02-07 11:52:29.437: E/AndroidRuntime(10075):    at test.marco.notenha.mark.onCreate(mark.java:70)
  02-07 11:52:29.437: E/AndroidRuntime(10075):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
  02-07 11:52:29.437: E/AndroidRuntime(10075):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1628)
  02-07 11:52:29.437: E/AndroidRuntime(10075):    ... 11 more
  </code></pre>