SQLite的query方法,注意检查参数args中是否含null值

Android 2.3.3   
Eclipse Version: 3.7.0   
LogCat 

 LogCat  报错信息:

03-13 10:25:37.163: ERROR/AndroidRuntime(4166): java.lang.IllegalArgumentException: the bind value at index 2 is null  
03-13 10:25:37.163: ERROR/AndroidRuntime(4166): at android.database.sqlite.SQLiteProgram.bindString(SQLiteProgram.java:237)  
03-13 10:25:37.163: ERROR/AndroidRuntime(4166): at android.database.sqlite.SQLiteQuery.bindString(SQLiteQuery.java:185)  
03-13 10:25:37.163: ERROR/AndroidRuntime(4166): at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:48)  
03-13 10:25:37.163: ERROR/AndroidRuntime(4166): at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1356)  
03-13 10:25:37.163: ERROR/AndroidRuntime(4166): at android.database.sqlite.SQLiteDatabase.queryWithFactory(SQLiteDatabase.java:1235)  
03-13 10:25:37.163: ERROR/AndroidRuntime(4166): at android.database.sqlite.SQLiteDatabase.query(SQLiteDatabase.java:1189)  
03-13 10:25:37.163: ERROR/AndroidRuntime(4166): at android.database.sqlite.SQLiteDatabase.query(SQLiteDatabase.java:1271)  
03-13 10:25:37.163: ERROR/AndroidRuntime(4166): at com.tmall.nokia.db.RecordDBHelper.query(RecordDBHelper.java:53)  
03-13 10:25:37.163: ERROR/AndroidRuntime(4166): at com.tmall.nokia.manage.RecordDBopt.get(RecordDBopt.java:80)  
03-13 10:25:37.163: ERROR/AndroidRuntime(4166): at com.tmall.nokia.Play.savePlayCount(Play.java:775)  
03-13 10:25:37.163: ERROR/AndroidRuntime(4166): at com.tmall.nokia.Play$5.run(Play.java:369)  
03-13 10:25:37.163: ERROR/AndroidRuntime(4166): at java.util.Timer$TimerImpl.run(Timer.java:284) 

 

发生错误原因分析:

检查相关代码,发现

传入savePlayCount的String值programid为null,在传入之前和传入后均未作判断

public void savePlayCount(String programid, int count) {  
……  
}  

 

而programid最终作为参数args这个String数组中的一个值,用于数据库查询

Cursor cur = db.query(TBL_NAME, null, where, args, null, null, order);  

 

由于args这个String数组中的String有null值,报错

 

解决办法:

在传入programid前或之后对其值作判断

if (programid != null) {  
……  
}

 

PS:args这个String数组中不能有null值

Flask+SQLite多对多关系实战:从中间表到关联模型 多对多关系是关系型数据库中最基础也最易出错的核心范式,其本质是通过中间表实现两个实体间的双向映射。在SQLite环境下,由于外键约束默认关闭、缺乏自动级联管理,必须手动激活PRAGMA foreign_keys并合理设计关联结构。技术价值在于保障数据一致性、支持高效JOIN查询与灵活扩展——如添加收藏时间、主作者标识等业务字段。典型应用场景包括图书-作者、用户-标签、权限-角色等Web系统建模。本文聚焦Flask-SQLAlchemy在SQLite中的落地实践,详解db.Table与db.Model两种中间 阅读详情

相关推荐

Java项目集成SQLite实战:从环境搭建到性能调优全解析

嵌入式数据库作为轻量级数据存储解决方案,以其零配置、无服务器和单文件部署的特性,在特定场景下展现出独特的工程价值。其核心原理在于将数据库引擎直接嵌入到应用程序进程中,通过文件系统进行数据持久化,从而避免了独立数据库服务的部署与维护开销。这一技术特性使其在资源受限、追求部署简便性的环境中具有显著优势,例如桌面客户端应用、边缘计算设备以及快速原型开发。通过JDBC驱动,Java开发者能够便捷地操作SQLite数据库,实现标准的数据定义与操作。在实际应用中,合理配置PRAGMA参数(如开启WAL模式以提升并发性能

weixin_30628801的博客 371

操作SQLite数据库报错:“绑定或列的索引超出范围”

Android 2.3.3 Eclipse Version: 3.7.0 LogCat  LogCat 报错信息: 02-13 09:21:35.030: WARN/dalvikvm(17173): threadid=19: thread exiting with uncaught exception (group=0x40015560) ...

DebugLog的专栏 639

Java集成SQLite实战:从驱动选型到性能调优的完整指南

在Java应用开发中,数据库选型是架构设计的关键环节。JDBC作为Java连接数据库的标准API,为开发者提供了统一的操作接口。SQLite作为一种轻量级、嵌入式的关系型数据库,以其零配置、无服务器和单文件存储的特性,在特定场景下展现出独特的技术价值。它尤其适用于桌面应用、移动端原型、单元测试以及需要离线运行的嵌入式场景,能够有效简化部署和降低资源开销。通过选择合适的JDBC驱动并优化连接参数,可以显著提升数据操作的效率和并发处理能力。本文聚焦于Java项目中SQLite的集成与实践,详细解析了Xerial

weixin_33690367的博客 506

sqlite3 判断字段是否为空

select * from tableName where xxx is null

xiaoxiaoCloud的专栏 1万+

Linux命令行电子词典开发:从离线词库解析到SQLite缓存实战

在Linux环境下,命令行工具与本地应用开发是系统编程与自动化运维的核心技能。其原理在于通过组合系统调用、进程管理、文件IO与网络通信等底层机制,构建高效、可定制的实用程序。这类技术的价值在于能深度契合开发者的工作流,提升效率,并强化对系统本身的理解。典型的应用场景包括服务器管理、嵌入式开发以及日常自动化任务。本文聚焦于一个具体实践:开发一个功能完整的命令行电子词典。该项目综合运用了离线词库解析(如StarDict格式)、SQLite本地缓存、网络API集成以及ncurses终端界面开发,展示了如何将分散的

virusswb的专栏 400

用Python和SQLite从零实现轻量搜索引擎:倒排索引与BM25实战

搜索引擎并非只有Elasticsearch等重型方案,在知识库、帮助文档或内部系统中,轻量级搜索同样能解决实际问题。理解搜索引擎的核心原理,从最简单的概念出发:先对文档进行分词处理,建立倒排索引,再通过BM25算法计算相关度排序,最终提供可解释的搜索服务。这套流程不仅适用于中小规模场景,更能帮助开发者掌握搜索系统的底层逻辑。本文基于Python和SQLite构建一个可运行的mini-search系统,覆盖分词、索引构建、评分和查询接口,并逐步剖析每一步的设计取舍。无论是想学习搜索引擎原理,还是为内部系统快速

weixin_33871366的博客 413

java.lang.IllegalArgumentException: the bind value at index 1 is null

java.lang.IllegalArgumentException: the bind value at index 1 is null at android.database.sqlite.SQLiteProgram.bindString(SQLiteProgram.java:164) 自定义相机拍摄了多张图片,保存到本地并添加到系统相册,然后在自定义的相册中浏览拍摄的

HelloWorld的专栏 6086

手把手搭建教育数据分析管道:Python+SQLite+Airflow实战

数据管道是现代数据工作的基础设施,本质是将原始数据通过提取、清洗、标准化、存储与调度形成可复现、可验证、可维护的自动化流程。它解决的不是建模或算法问题,而是保障分析所用数据的真实性、时效性与一致性。掌握数据管道思维,意味着能快速应对政府公报PDF、统计年鉴Excel等多源异构数据的整合挑战,显著降低‘找数-拼数-验数’的重复成本。本文以教育GPA与家庭收入关联分析为真实场景,基于Python生态与轻量级技术栈(SQLite/Airflow),详解从零构建具备质量校验、名称标准化、增量更新能力的本地化数据管道

weixin_30374009的博客 318

sqlite中字段不是null的过滤条件如何写

在 SQLite 中过滤字段不为 null 的条件可以使用 "IS NOT NULL" 运算符。例如: SELECT * FROM table_name WHERE column_name IS NOT NULL; 这将返回表 "table_name" 中所有 "column_name" 不为 null 的行。 ...

weixin_42608318的博客 755

别光看手册!手把手教你用SGM2036 LDO设计一个稳定3.3V转1.8V的MCU供电电路(附PCB布局避坑指南)

本文详细介绍了如何使用SGM2036 LDO设计一个稳定的3.3V转1.8V的MCU供电电路,包括需求分析、芯片选型、外围器件计算、PCB布局避坑指南及实测验证。通过实际案例和计算示例,帮助工程师快速掌握LDO应用技巧,确保系统电源稳定可靠。

weixin_42548893的博客 505

STM32F407驱动OV2640摄像头:从SCCB协议到I2C模拟的保姆级避坑指南

本文详细介绍了STM32F407驱动OV2640摄像头的完整流程,重点解析SCCB协议与I2C的关键差异,并提供GPIO模拟实现方案。通过实战案例和调试技巧,帮助开发者避开常见陷阱,实现稳定的图像采集功能。

weixin_28700411的博客 345

ArgumentNullException: 值不能为 null问题

今天做实验时遇到了这样的问题: ArgumentNullException: 值不能为 null。 问题的错误提示如下: 行 14: { 行 15: string categoryId = Request.QueryString["CategoryId"]; 行 16: var category = (from

shurychen的博客 3万+

谈谈 FOC和BLDC 电机控制

更具体地说,通过 “Park 变换”,我们可以把三相交流电流信号转换成两相直流电流信号,从而可以把三相交流电机的控制变得和两相直流电机控制一样简单。在内环 “电流环”中,一些比较重要的模块有 “Clark 变换” 和 “Park 变换” 等数学模块、电机电流信号检测模块以及能够提供电机的转速和转角位置信息的模块。日前,Qorvo 电机控制应用高级系统/应用工程师张绍发表了一个与 BLDC 和 FOC 相关的演讲,科普了 FOC 的相关知识,还讲解了 Qorvo 用于简化 FOC 实施方案的方法。

U_YAO的博客 2116

SQLite3

注意:安装sqlite3和安装sqlite3依赖库不是一个概念,安装sqlite3依赖库,需要执行。

qq_44672308的博客 657

Lumerical FDTD新手教程:5步搞定MMI波导光谱模拟(附避坑指南)

本文提供Lumerical FDTD新手教程,详细讲解5步完成MMI波导光谱模拟的实用方法,包括环境准备、结构建模、光源配置、仿真优化和结果分析。特别针对多模干涉耦合器(MMI)的模拟难点,提供避坑指南和优化策略,帮助光学工程师快速掌握FDTD仿真技术。

kite3的博客 358

微信小程序测试号开发后上传按钮灰色?三步快速切换正式AppID

本文详细解析了微信小程序测试号开发后上传按钮灰色的原因,并提供了三步快速切换正式AppID的解决方案。通过注册正式小程序账号、修改项目配置和重新编译上传,开发者可以轻松解决上传按钮不可用的问题,确保小程序顺利上线。

weixin_29291185的博客 1574

MAS 激活脚本使用指南:免费实现 Windows 与 Office 永久激活的 4 种方法

MAS 激活脚本是一款免费开源、免安装的 Windows 激活与 Office 激活工具,内置 HWID、Ohook、TSforge、Online KMS 四种方式,可覆盖系统到办公套件的永久激活场景。关于 MAS 激活脚本怎么用,本文按"先选方案、再上手、最后排查"的顺序来讲,全程不需要安装任何软件。 ## 先选方案:4 种激活方式按需求对号入座 4 种方式各有分工,对照自己的需求选就行:

gitblog_00848的博客 218

以 DeleteRestrictions 与 inlineDelete 为核心的 Fiori Elements 表格删除机制全解

SAP Fiori elements 中删除操作的设计与实现涉及多维度考量。框架默认依据 OData 元数据判断删除能力,通过 DeleteRestrictions 注解实现行级条件控制(deletable-path)。表格支持两种删除模式:工具栏集中删除与响应式表格行内删除,但二者不建议混用。关键约束包括:行内删除仅适用于 Responsive Table,且与多选功能互斥。配置需遵循三层架构:后端能力注解、前端表格形态和运行时交互。设计上强调禁用优于隐藏的可用性原则,并需保持列表页与对象页的删除体验一致

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 152

SQLite显示表命令原理与实战:从.tables到sqlite_master元数据解析

SQLite中‘显示表’并非简单命令,而是理解其元数据架构的入口。核心原理在于系统表sqlite_master——它存储所有表、视图、索引的类型、名称、创建SQL等真实元信息,是数据库结构的唯一真相源。区别于MySQL的SHOW TABLES,SQLite通过.tables(CLI快捷方式)、PRAGMA table_list(多schema增强视图)及直接查询sqlite_master实现表枚举,三者本质统一但适用场景不同:.tables适合人工快速浏览,而生产级脚本和跨schema管理必须依赖sqlit

weixin_30265103的博客 294

三维重建/SLAM笔记_最佳学习路线/攻略

本文目的 学习三维重建,需要不少知识,而知识之间又存在不同的依赖关系,为了后来人能少走弯路,也为了对自己的知识框架系统总结,特记录自己的学习路线。 学习心得 关于读书,了解基础知识是一方面,产生疑问也是一方面,为以后知道学习什么留下印象; 一回生,二回熟,看不懂时,大多是因为先验知识不够,没关系,多查多想,总会搞懂的。 学习路线 1.计算机图形学基础(OpenGL基础版)(徐文鹏 清...

惊鸿一博 3290

SwinTransformer改进(5):与CBAM结合的视觉模型

这个模型的核心思想是将Swin Transformer的强大特征提取能力与CBAM的注意力机制相结合,以提升模型对重要特征的关注度。​​CBAM模块​​:包含通道注意力和空间注意力两个子模块​​Swin Transformer主干网络​​:作为基础特征提取器​​集成结构​​:在Swin Transformer的不同阶段插入CBAM模块使用移动窗口(Moving Window)机制减少计算量层次化设计,特征图逐渐缩小,通道数逐渐增加在不同阶段使用Patch Merging进行下采样。

2401_82355416的博客 686

用Python+SQLite构建本地资料库:从设计到查询导出全攻略

轻量级数据库方案在个人工具开发中越来越受关注,SQLite凭借零配置、单文件、跨平台等优势成为理想选择。配合Python标准库的sqlite3模块,开发者可以快速搭建本地资料管理系统。通过JSON定义结构化数据,结合命令行查询与CSV导出,能够形成一套高效的数据录入、检索、报表闭环。本文以游戏资料整理为背景,从数据库表设计、JSON批量导入、SQL查询到中文CSV导出,完整演示一个本地化资料库的构建过程。无论是游戏爱好者还是Python初学者,都能通过实战理解SQLite在真实项目中的应用。

weixin_34205826的博客 418

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

MCP协议实战:用Python构建AI数据库查询工具,让Claude直接操作SQLite

在AI应用开发中,如何让大语言模型安全、高效地访问和操作外部数据与系统,是提升其实际生产力的关键挑战。Model Context Protocol(MCP)作为一种标准化协议,定义了AI模型与外部工具(如数据库、API)之间结构化通信的规则,其核心价值在于为AI能力提供了安全、可控的扩展边界。通过构建MCP Server,开发者可以将内部资源(如数据库Schema)和操作(如SQL查询)封装成标准的Resources和Tools,使AI助手(Client)能够基于实时上下文理解用户意图并执行安全操作,从而将

653

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

MCP Memory:用SQLite FTS5给Agent打造轻量长期记忆

在AI应用开发中,Agent的长期记忆能力一直是工程落地的痛点。模型自身无法持久化知识,依赖Prompt注入又面临成本与窗口限制。全文检索技术为此提供了轻量级解决方案:通过SQLite自带的FTS5扩展,开发者无需引入向量数据库,即可实现毫秒级的关键词匹配与BM25相关度排序。结合MCP协议,记忆能力能被标准化封装成工具接口,供Claude Desktop、Cursor等客户端直接调用。这种结构化存储方案以确定性和可控成本为核心优势,特别适合用户偏好、项目配置、历史决策等精确记忆场景。文章从数据工程视角拆解

weixin_34293141的博客 412

SQLite本地优先架构在健康追踪应用中的实践与优化

数据持久化是移动应用开发的核心基础,它决定了应用数据的存储方式和访问效率。SQLite作为轻量级嵌入式数据库,采用无服务器架构和单一磁盘文件设计,通过ACID事务保证数据一致性。这种技术方案特别适合需要离线优先、快速响应的应用场景,如个人健康追踪和健身管理。在本地优先架构中,SQLite确保用户数据完全存储在设备本地,无需网络连接即可流畅使用,同时通过合理的数据模型设计和索引优化提升查询性能。以Kilo健身追踪应用为例,基于SQLite的体重记录、运动管理和营养追踪模块展示了如何实现高效的数据操作与统计分析

weixin_30924239的博客 342

Flask入门:从HTTP协议到SQLite部署的全栈实践

Web应用开发本质是HTTP请求与响应的闭环处理,其底层依赖WSGI协议、Python运行时及操作系统进程协同。Flask作为轻量级Python Web框架,以极简设计暴露核心概念——路由绑定、请求上下文、模板渲染与数据库交互,成为理解Web工作原理的理想入口。它不封装细节,使开发者直面HTTP生命周期、SQLite嵌入式存储、Bootstrap前端集成及gunicorn+nginx生产部署等关键环节。本文围绕flask入门和sqlite实战展开,覆盖从'Hello World'到可上线图书管理系统的完整路

cong84596496的博客 369
上一篇: SqLite的query方法,参数args中不能含null值
下一篇: SQLite一次性读取过多记录,造成内存溢出OutOfMemoryError
DebugLog
博客等级 码龄15年 10粉丝 20原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值