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

 

正确的用法

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

 

http://blog.sina.com.cn/s/blog_67aaf44401015xtl.html

相关文章:

  • 2022-03-05
  • 2021-10-31
  • 2021-11-23
  • 2021-12-25
  • 2021-12-31
  • 2021-12-12
  • 2021-09-17
  • 2021-10-15
猜你喜欢
  • 2022-12-23
  • 2021-06-03
  • 2021-04-10
  • 2021-11-04
  • 2022-12-23
  • 2021-07-21
相关资源
相似解决方案