java.lang.IllegalArgumentException: column 'xxx' does not exist解决方法

在进行Android应用开发时,使用SQLite数据库查询时遇到了`java.lang.IllegalArgumentException: column 'xxx' does not exist`的错误。问题出现在使用SUM函数查询特定字段时,数据库适配器(dbadapter)的query方法与显示数据的Cursor不匹配。解决方法是确保在query方法中包含SUM操作的字段,并在Cursor的from参数中正确引用该字段。修改后的查询语句和显示字段匹配后,问题得到解决。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近自己做一个android项目的开发  自任项目经理+程序员+客户+测试+!@#¥  开发中遇到问题若干

在自己的blog上写上解决办法 防止以后忘记 也方便大家开发

 

今天使用sqlite中的query函数 查询数据库中的某个字段 用到了求和SUM 结果弹出这样的错误 百思不得其解

 

网上有关于XXX中是_id的解决办法  但是不是我的 参考之后发现是这样的

 

在dbadapter中使用query函数 函数是这样的

函数名为getdates()

return sqliteDatabase.query(true,DATABASE_TABLE, new String[] { KEY_ROWID, KEY_CATEGORY,
    SUM_KEY_MONEY, KEY_CREATED,KEY_TIME }, null, null, KEY_CREATED, null, KEY_CREATED+" DESC",null);

红色部分出错  也就是我的XXX的地方是这个  这是个求和函数

定义部分为

 public static final String SUM_KEY_MONEY = "sum(money)";

运行程序 说是money找不到这个列   奇怪了

 

后来找到使用这个结果的cursor

cursor = DbAdapter.getdates();
  startManagingCursor(cursor);
  String[] from = new String[]{CWJZDbAdapter.money,CWJZDbAdapter.created};

注意了 就是这个地方出问题了

后来将这个money改成

String[] from = new String[]{CWJZDbAdapter.SUM_KEY_MONEY,CWJZDbAdapter.created};

 

问题解决

如果在显示的里边用了money 那么在dbadapter中的query里一定要查出来 如果没有查出来 这个地方就识别不了

是这么个错误  搞定

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值