首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > 其他数据库 >

Android开发七——android.database.CursorIndexOutOfBoundsException:Index -1 requested,

2012-12-25 
Android开发7——android.database.CursorIndexOutOfBoundsException:Index -1 requested, with a size of 1

Android开发7——android.database.CursorIndexOutOfBoundsException:Index -1 requested, with a size of 1

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();

 

热点排行