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

Android开发7——android.database.CursorIndexOutOfBoundsException:Index -1 requested的更多相关文章

  1. android.database.CursorIndexOutOfBoundsException: Index -1 requested, with a size of 3

           今天在写一个小项目的数据库部分的功能时,出现了一个这样的问题:java.lang.RuntimeException: Failure delivering result ResultIn ...

  2. android sqlite android.database.CursorIndexOutOfBoundsException: Index 5 requested, with a size of 5

    Cursor c = db.query("user",null,null,null,null,null,null);//查询并获得游标 if(c.moveToFirst()){// ...

  3. android.database.CursorIndexOutOfBoundsException:Index -1 requested, with a size of 1(zz)

    android.database.CursorIndexOutOfBoundsException:Index -1 requested, with a size of 1 http://blog.cs ...

  4. Android android.database.CursorIndexOutOfBoundsException:Index -1 requested, with a size of 1

    Android中数据库处理使用cursor时,游标不是放在为0的下标,而是放在为-1的下标处开始的. 也就是说返回给cursor查询结果时,不能够马上从cursor中提取值. 下面的代码会返回错误 U ...

  5. android.database.CursorIndexOutOfBoundsException: Index <m> requested, with a size of <n>

    遇到这样的问题比较郁闷,造成上述问题的原因也是多种多样的. 总结一下原因: 1:得到cursor对象,没有moveToPosition()或者moveToNext()等游标操作就进行cursor.ge ...

  6. AllJoyn+Android开发案例-android跨设备调用方法

    AllJoyn+Android开发案例-android跨设备调用方法 项目须要涉及AllJoyn开源物联网框架.前面主要了解了一些AllJoyn主要的概念.像总线,总线附件,总线对象,总线接口这种概念 ...

  7. CSharp程序员学Android开发---3.Android内部元素不填充BUG

    最近公司组织项目组成员开发一个Android项目的Demo,之前没有人有Andoid方面的开发经验,都是开发C#的. 虽说项目要求并不是很高,但是对于没有这方面经验的人来说,第一步是最困难的. 项目历 ...

  8. Google主推-Android开发利器——Android Studio,这可能是最全的AS教程!

    Android Studio使用手册 "工欲善其事必先利其器" 作为一个Android开发人员来说,一款好的开发工具也是相当重要的,在相当长的时间礼,Google都是基于Eclip ...

  9. [android开发篇][android studio 和elipse都需要的流程 android sdk的安装

    第三步.下载并安装AndroidSDK 前面两步,我们已经配置了JDK变量环境,并安装好了Eclipse,通过这两步之后Java的开发环境就准备好了,如果我们只是开发普通的JAVA应用程序的话,那么到 ...

随机推荐

  1. yeoman-angular-gulp

    1.安装 yeoman npm install -g yo gulp bower 2.安装genarate-angular //npm install generator-angular npm in ...

  2. Java 正则表达式提取标签中的属性(src 连接地址)等

    public class Test { public static void main(String[] args) { String source = "<p><img ...

  3. ORA-01843: 无效的月份,执行sql语句更改为美国语言后仍然失败的解决办法

    ORA-01843: 无效的月份失败的 sql 为:XXXXXXXXXXXXXXXX 执行sql语句更改为美国语言后仍然失败, ALTER SESSION SET NLS_DATE_LANGUAGE= ...

  4. C#.NET常见问题(FAQ)-如何把资源嵌入到项目中

    首先把图像的资源添加到项目中,   选择资源文件(常规),修改一下这个资源的名字(比如叫做ButtonPic)   我们假定已经把图像放到了项目的某个文件夹下(比如Pic文件夹下,注意不是bin目录下 ...

  5. NYOJ 113 字符串替换(C++STL解法)

    字符串替换 时间限制:3000 ms  |            内存限制:65535 KB 难度:2 描写叙述 编写一个程序实现将字符串中的全部"you"替换成"we& ...

  6. Android 之布局(二)

    3.TableLayout(表格布局) 像表格一样布局,通常情况下,TableLayout有多个TableRow组成,每个TableRow就是一行. <?xml version="1. ...

  7. HTML二(基本标签)

    一.标题 HTML 标题(Heading)是通过 <h1> - <h6> 等标签进行定义的. <!--标题--> <h1>标题 1</h1> ...

  8. ASP.NET MVC+Bootstrap 实现短信验证

    短信验证大家都已经非常熟悉了,基本上每天都在接触手机短信的验证码,比方某宝,某东购物.站点注冊,网上银行等等,都要验证我们的手机号码真实性.这样做有什么优点呢. 曾经咱们在做站点的时候.为了提高用户注 ...

  9. Codeforces 417D Cunning Gena(状态压缩dp)

    题目链接:Codeforces 417D Cunning Gena 题目大意:n个小伙伴.m道题目,每一个监视器b花费,给出n个小伙伴的佣金,所须要的监视器数,以及能够完毕的题目序号. 注意,这里仅仅 ...

  10. delattr

    >>> class MyData(): def __init__(self,name,phone): self.name=name self.phone=phone def upda ...