先来三段代码

第一段

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循环了


更多相关文章

  1. android dialog屏蔽back返回键的解决方法
  2. 运行时改变Button图片的android:drawableTop
  3. 【android】通过handle,looper实现多线程数据同步
  4. 设置Android铃声代码例子
  5. Android(安卓)程序中哪个 Activity 最先运行
  6. [android]编译时出现/usr/bin/ld: skipping incompatible /usr/l
  7. Android使用代码
  8. Android(安卓)ApiDemos 系列解析【View-ImageView/ImageButton】
  9. textview cannot be resolved to a type 解决方法

随机推荐

  1. Redis单线程?别逗了,Redis6.0多线程重磅来
  2. 最近的总结
  3. 一个细节 | Java中asList的缺陷
  4. Flink1.8.0重大更新-Flink中State的自动
  5. golang核心原理-协程栈
  6. 数据不撒谎,Flink-Kafka性能压测全记录!
  7. golang核心原理-协程调度时机
  8. 《MySQL》系列 - 十张图详解 MySQL 日志(
  9. 【腾讯二面】5s内建立多少个mysql连接?
  10. Java异常与调优一站式解决方案