SQLite插入查询的问题

saberalex 2014-05-01 07:59:30
创建完表后,我插入了四条数据。查询的时候游标烦你的数量是4,但是移动的时候却发生了游标越界的 问题,只显示了一分部数据
代码如下:
Cursor c = db.rawQuery("select * from chatinfo where sender=? or recver = ?",new String[]{getname,getname});//查询并获得游标

String sender = null,info = null,kk = null;
if(c.getCount() == 0){
Toast.makeText(getApplicationContext(), "联系人名称不存在", Toast.LENGTH_SHORT).show();
return;
}System.out.println("count: "+c.getCount());
if(c.moveToFirst()){//判断游标是否为空
for(int i=0;i<c.getCount();i++){

c.move(i);//移动到指定记录
try{
sender = c.getString(c.getColumnIndex("sender"));
if(sender.equals("@@@@"))sender="自己";
info = c.getString(c.getColumnIndex("info"));
kk = c.getString(c.getColumnIndex("chatinfo_id"));
System.out.println("info: "+kk+info+sender+"i"+i);
}catch(RuntimeException e){
System.out.println("error!!!!!!!!!!!!");
e.printStackTrace();
c.close();
}
...全文
139 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
yaoyue1019 2014-05-02
  • 打赏
  • 举报
回复
另外 如果没有error 你的cursor都没做close操作 close放到final里
yaoyue1019 2014-05-02
  • 打赏
  • 举报
回复
移植没用过move 你改成cursor.moveToNext() 然后再对cursor取值看看
saberalex 2014-05-02
  • 打赏
  • 举报
回复
引用 3 楼 yaoyue1019 的回复:
移植没用过move 你改成cursor.moveToNext() 然后再对cursor取值看看
就是三楼说的 问题解决了 谢谢你哈 close我把放在循环外结束,finally是在循环里的, 这一点也谢谢提醒哈
saberalex 2014-05-01
  • 打赏
  • 举报
回复
求高手解答啊
saberalex 2014-05-01
  • 打赏
  • 举报
回复
自己顶 不要沉了

80,360

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧