绑定参数太多。提供了5个参数但声明需要4个参数

时间:2014-07-17 07:43:13

标签: java android sqlite sql-update

执行下面的函数时,我得到了IllegalArgumentException。我不能得到的是,当我运行调试器时, values 变量显然只包含4个参数。

所以......

(1)这个神秘的第五个论点来自哪里?

(2)我应该如何找到这个错误?

db.update(
    UppdragEntry.TABLE_NAME,
    values,
    selection,
    selectionArgs);

1 个答案:

答案 0 :(得分:41)

  

选择包含以下内容:字符串选择=" _id&#34 ;; String [] selectionArgs = {" =" + personId};

selectionArgs中的?selection占位符不存在。

将其更改为

String selection = "_id = ?";
String[] selectionArgs = { "" + personId };

该方法构建一个SQL字符串。提供的ContentValues构建为?占位符和绑定参数。其他选择参数也作为绑定参数提供,它们必须与相同数量的?占位符匹配。