分享一下我老师大神的人工智能教程!零基础,通俗易懂!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();