Too many bind arguments. 5 arguments were provided but the statement needs 4 arguments(绑定参数太多.提供了 5 个参数,但语句需要 4 个参数)
问题描述
执行下面的函数时,我得到了上面的 IllegalArgumentException.我没有得到的是,当我运行调试器时,values 变量显然只包含 4 个参数,因为它应该.
I get the IllegalArgumentException above when executing the function below. What I don't get is that when I run the debugger, the values variable clearly only contains 4 arguments, as it should.
所以……
(1) 这个神秘的第五个论点从何而来?
(1) Where does this mysterious fifth argument come from?
(2) 我应该如何找到这个错误?
(2) How should I approach finding this error?
db.update(
UppdragEntry.TABLE_NAME,
values,
selection,
selectionArgs);
推荐答案
Selection 包含以下内容: String selection = "_id";String[] selectionArgs = {" =" + personId};
Selection contains the following: String selection = "_id"; String[] selectionArgs = {" =" + personId};
您在 selectionArgs
中有一个值,但在 selection
中没有 ?
占位符.
You have a value in selectionArgs
but no ?
placeholder for it in selection
.
改成
String selection = "_id = ?";
String[] selectionArgs = { "" + personId };
该方法构建一个 SQL 字符串.提供的 ContentValues
构建为 ?
占位符和绑定参数.额外的选择参数也作为绑定参数提供,它们必须与相同数量的 ?
占位符匹配.
The method builds an SQL string. Supplied ContentValues
are built as ?
placeholder and bind arguments. Additional selection args are also provided as bind arguments and they must be matched with equal number of ?
placeholders.
这篇关于绑定参数太多.提供了 5 个参数,但语句需要 4 个参数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:绑定参数太多.提供了 5 个参数,但语句需要 4 个参数
基础教程推荐
- 如何使用 Java 创建 X509 证书? 2022-01-01
- Java:带有char数组的println给出乱码 2022-01-01
- Java Keytool 导入证书后出错,"keytool error: java.io.FileNotFoundException &拒绝访问" 2022-01-01
- FirebaseListAdapter 不推送聊天应用程序的单个项目 - Firebase-Ui 3.1 2022-01-01
- “未找到匹配项"使用 matcher 的 group 方法时 2022-01-01
- 无法使用修饰符“public final"访问 java.util.Ha 2022-01-01
- 设置 bean 时出现 Nullpointerexception 2022-01-01
- 在 Libgdx 中处理屏幕的正确方法 2022-01-01
- 降序排序:Java Map 2022-01-01
- 减少 JVM 暂停时间 >1 秒使用 UseConcMarkSweepGC 2022-01-01