我在执行下面的函数时得到上面的 IllegalArgumentException。我没有得到的是,当我运行调试器时,values 变量显然只包含 4 个参数,这是应该的。
所以...
(1)这个神秘的第五个参数从何而来?
(2) 我应该如何找到这个错误?
db.update(
UppdragEntry.TABLE_NAME,
values,
selection,
selectionArgs);
最佳答案
Selection contains the following: String selection = "_id"; String[] selectionArgs = {" =" + personId};
您在 selectionArgs
中有一个值,但在 selection
中没有 ?
占位符。
改成
String selection = "_id = ?";
String[] selectionArgs = { "" + personId };
该方法构建了一个 SQL 字符串。提供的 ContentValues
构建为 ?
占位符和绑定(bind)参数。其他选择参数也作为绑定(bind)参数提供,它们必须与相同数量的 ?
占位符匹配。
关于java - 绑定(bind)参数太多。提供了 5 个参数,但语句需要 4 个参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24797635/