关于android系统自带数据库SQLite操作的重要易犯错误
16lz
2021-01-24
先来三段代码
第一段
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循环了
更多相关文章
- android dialog屏蔽back返回键的解决方法
- 运行时改变Button图片的android:drawableTop
- 【android】通过handle,looper实现多线程数据同步
- 设置Android铃声代码例子
- Android(安卓)程序中哪个 Activity 最先运行
- [android]编译时出现/usr/bin/ld: skipping incompatible /usr/l
- Android使用代码
- Android(安卓)ApiDemos 系列解析【View-ImageView/ImageButton】
- textview cannot be resolved to a type 解决方法