读书人

Android开发七android.database.C

发布时间: 2012-12-25 16:18:28 作者: rapoo

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

读书人网 >其他数据库

热点推荐