Android开发7——android database CursorIndexOutOfBoundsException

分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow

也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!

               

android中数据库处理使用cursor时,游标不是放在为0的下标,而是放在为-1的下标处开始的。

也就是说返回给cursor查询结果时,不能够马上从cursor中提取值。


下面的代码会返回错误

User u = null;SQLiteDatabase db = dbHelper.getReadableDatabase();Cursor cursor = db.rawQuery("select * from user where id = ?", new String[] { id.toString() });Integer uid = cursor.getInt(cursor.getColumnIndex("id"));String uname = cursor.getString(cursor.getColumnIndex("name"));float uamount = cursor.getFloat(cursor.getColumnIndex("amount"));u = new User(uid, uname, uamount);cursor.close();



正确的用法

User u = null;SQLiteDatabase db = dbHelper.getReadableDatabase();Cursor cursor = db.rawQuery("select * from user where id = ?", new String[] { id.toString() });if (cursor.moveToFirst()){ Integer uid = cursor.getInt(cursor.getColumnIndex("id")); String uname = cursor.getString(cursor.getColumnIndex("name")); float uamount = cursor.getFloat(cursor.getColumnIndex("amount")); u = new User(uid, uname, uamount);}cursor.close();
           

给我老师的人工智能教程打call!http://blog.csdn.net/jiangjunshow

这里写图片描述

猜你喜欢

转载自blog.csdn.net/hdsghtj/article/details/84000164