为什么c.moveToFirst()不会跳过第一行

Ilo*_*sta 3 sqlite android cursor

我总是使用下面的代码来获取所有信息
但我有问题c.movetoNext导致跳过结果集的第一行
请告诉我表面背后真的发生了什么,这样我才能完全理解它

    SQLiteDatabase db;
    Cursor c = db.query("pic", null, null, null, null,null, null);
    c.moveToFirst();
    while(c.movetoNext)
    {
    //do something
    //example: String a=c.getString(0);
    }
Run Code Online (Sandbox Code Playgroud)

Ral*_*gha 12

你正在调用moveToFirst(),它将光标定位在第一行,然后moveToNext()在进入循环之前调用while 循环,这会导致第一行被跳过.

您可以使用do ... while循环或for循环来解决它

for( c.moveToFirst(); !c.isAfterLast(); c.moveToNext() ) {
    // Stuff
}
Run Code Online (Sandbox Code Playgroud)