先来三段代码
第一段
Cursor cursor= database.rawQuery(sql, null);
System.out.println(cursor+""
while (cursor.moveToNext())
{
String province;
province=cursor.getString(cursor.getColumnIndex("PROVINCE"));
list.add(province);
count++;
}
第二段
Cursor cursor= database.rawQuery(sql, null);
System.out.println(cursor+"");
cursor.moveToFirst();
do
{
String province;
province=cursor.getString(cursor.getColumnIndex("PROVINCE"));
list.add(province);
count++;
}while (cursor.moveToNext());
第三段
Cursor cursor= database.rawQuery(sql, null);
System.out.println(cursor+"");
cursor.moveToFirst();
while (cursor.moveToNext())
{
String province;
province=cursor.getString(cursor.getColumnIndex("PROVINCE"));
list.add(province);
count++;
}
前2段代码运行,都不会出错,第三段代码运行其实也不会出错,但是第三段代码却有一个致命的问题,就是数据库中的第一条取不到。
所以当使用了cursor.moveToFirst()之后,不能再采用while循环,而是要采用do——while循环。或者不使用cursor.moveToFirst();游标集的游标默认的是在第一行上面的位置,这时候就可以直接使用while循环了