SQLiteBindOrColumnIndexOutOfRangeException
首先贴出错误消息:
12-24 18:01:55.940: W/System.err(29565): android.database.sqlite.SQLiteBindOrColumnIndexOutOfRangeException: bind or column index out of range: handle 0x158e0b0 12-24 18:01:55.940: W/System.err(29565): at android.database.sqlite.SQLiteProgram.native_bind_string(Native Method) 12-24 18:01:55.940: W/System.err(29565): at android.database.sqlite.SQLiteProgram.compileAndbindAllArgs(SQLiteProgram.java:385) 12-24 18:01:55.940: W/System.err(29565): at android.database.sqlite.SQLiteStatement.acquireAndLock(SQLiteStatement.java:260) 12-24 18:01:55.940: W/System.err(29565): at android.database.sqlite.SQLiteStatement.executeUpdateDelete(SQLiteStatement.java:84) 12-24 18:01:55.940: W/System.err(29565): at android.database.sqlite.SQLiteDatabase.updateWithOnConflict(SQLiteDatabase.java:1810) 12-24 18:01:55.940: W/System.err(29565): at android.database.sqlite.SQLiteDatabase.update(SQLiteDatabase.java:1761) 12-24 18:01:55.940: W/System.err(29565): at com.mychat.db.SQLiteTemplate.update(SQLiteTemplate.java:254) 12-24 18:01:55.940: W/System.err(29565): at com.mychat.manager.MessageManager.updateReceived(MessageManager.java:110) 12-24 18:01:55.940: W/System.err(29565): at com.mychat.manager.MyReceiptProvider.createReturnExtension(MyReceiptProvider.java:23) 12-24 18:01:55.940: W/System.err(29565): at org.jivesoftware.smack.provider.EmbeddedExtensionProvider.parseExtension(EmbeddedExtensionProvider.java:105) 12-24 18:01:55.940: W/System.err(29565): at org.jivesoftware.smack.util.PacketParserUtils.parsePacketExtension(PacketParserUtils.java:811) 12-24 18:01:55.940: W/System.err(29565): at org.jivesoftware.smack.util.PacketParserUtils.parseMessage(PacketParserUtils.java:142) 12-24 18:01:55.940: W/System.err(29565): at org.jivesoftware.smack.PacketReader.parsePackets(PacketReader.java:178) 12-24 18:01:55.940: W/System.err(29565): at org.jivesoftware.smack.PacketReader.access$000(PacketReader.java:46) 12-24 18:01:55.940: W/System.err(29565): at org.jivesoftware.smack.PacketReader$1.run(PacketReader.java:72)
出现这样的消息一般是由于sql语句中的数据的个数没匹配上。
今天弄项目的时候,就遇到了这个问题,花了我一下午才解决,其实解决方法很简单,开始出现这个问题,我上网搜了资料,定位是这条数据库语句少了一些东西,可是我对比来对比去,都不觉得是少了什么。贴下我的代码:
SQLiteTemplate st = SQLiteTemplate.getInstance(manager, false); ContentValues contentValues = new ContentValues(); contentValues.put("msg_received", isReceived); st.update("im_msg_his", contentValues, "msg_id ", new String[] { msg_id });
因为以前使用sqlite,都用的是很简单的sql语句,这次因为用的别人的源码,所以对高级一点的语句就不奈何了,我们来看:
SQLiteTemplate是写好的一个模板,而这条update则是调用sqlite系统封装好的:
/** * 更新数据 * * @param table 表的名称 * @param values contentValues 键值对 * @param whereClause 要更新的哪一行 * @param whereArgs 要替换的那行的数据 * @return 返回值大于0表示更新成功 */ public int update(String table, ContentValues values, String whereClause, String[] whereArgs) { try { dataBase = dBManager.openDatabase(); int result = dataBase.update(table, values, whereClause, whereArgs); return result; } catch (Exception e) { e.printStackTrace(); } finally { if (!isTransaction) { closeDatabase(null); } } return 0; }
折腾了一下午,终于发现不同了,没错,就是
st.update("im_msg_his", contentValues, "msg_id ", new String[] { msg_id });
这一句,我们只需要改成
st.update("im_msg_his", contentValues, "msg_id =?", new String[] { msg_id });
就搞定了。哦,原来是这样子阿。
相关推荐
项目经过测试均可完美运行! 环境说明: 开发语言:java jdk:jdk1.8 数据库:mysql 5.7+ 数据库工具:Navicat11+ 管理工具:maven 开发工具:idea/eclipse
项目经过测试均可完美运行! 环境说明: 开发语言:java jdk:jdk1.8 数据库:mysql 5.7+ 数据库工具:Navicat11+ 管理工具:maven 开发工具:idea/eclipse
基于java的网吧管理系统答辩PPT.pptx
基于java的基于SSM架构的网上书城系统答辩PPT.pptx
tornado-6.1-cp37-cp37m-win32.whl
c语言气泡排序、插入排序、选择排序、快速排序、希尔排序、堆排序、合并排序_SortAlgorithm.zip
Keyboard Maestro 11.0.3_macwk.dmg
基于微信小程序的鲜花销售微信小程序答辩PPT.pptx
项目经过测试均可完美运行! 环境说明: 开发语言:java jdk:jdk1.8 数据库:mysql 5.7+ 数据库工具:Navicat11+ 管理工具:maven 开发工具:idea/eclipse
tornado-6.2b1-cp39-cp39-musllinux_1_1_x86_64.whl
项目经过测试均可完美运行! 环境说明: 开发语言:java jdk:jdk1.8 数据库:mysql 5.7+ 数据库工具:Navicat11+ 管理工具:maven 开发工具:idea/eclipse
tornado-6.1b2-cp38-cp38-manylinux2014_aarch64.whl
基于java的土家风景文化管理平台答辩PPT.pptx
jira安装包
基于java的机场网上订票系统答辩PPT.pptx
小区物业管理系统 SSM毕业设计 附带论文 启动教程:https://www.bilibili.com/video/BV1GK1iYyE2B
yolo算法-金属-纸张-硬纸板垃圾数据集-13409张图像带标签-金属-纸张-硬纸板-塑料-其他-烟蒂-食物-玻璃.zip;yolo算法-金属-纸张-硬纸板垃圾数据集-13409张图像带标签-金属-纸张-硬纸板-塑料-其他-烟蒂-食物-玻璃.zip;yolo算法-金属-纸张-硬纸板垃圾数据集-13409张图像带标签-金属-纸张-硬纸板-塑料-其他-烟蒂-食物-玻璃.zip
项目介绍: 系统模块主要包括;用户、考试信息、考场信息、试卷、试题、考试等管理功能 环境说明: 开发语言:java jdk:jdk1.8 数据库:mysql 5.7+ 数据库工具:Navicat11+ 管理工具:maven 开发工具:idea/eclipse
项目经过测试均可完美运行! 环境说明: 开发语言:java jdk:jdk1.8 数据库:mysql 5.7+ 数据库工具:Navicat11+ 管理工具:maven 开发工具:idea/eclipse
Python脚本运行环境搭建所需要的资源包