您的位置:首页 > 移动开发 > Android开发

关于android系统自带数据库SQLite操作的重要易犯错误

2012-10-23 09:39 645 查看
先来三段代码

第一段

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循环了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: