今天在编写一个数据库修改问题时出现了以下的错误(Too many bind arguments. 2 arguments were provided but the statement needs 1 arguments.)
09-23 15:22:36.890: D/AndroidRuntime(18490): Shutting down VM
09-23 15:22:36.892: E/AndroidRuntime(18490): FATAL EXCEPTION: main09-23 15:22:36.892: E/AndroidRuntime(18490): Process: com.example.gunqustudy, PID: 18490
09-23 15:22:36.892: E/AndroidRuntime(18490): java.lang.IllegalArgumentException: Too many bind arguments. 2 arguments were provided but the statement needs 1 arguments.
仔细分析,原来是自己在传update的参数的时候写错了。
错误:
DbUtils.updateDBValue(getActivity(), Constant.COLUMN_INDEX,
i, Constant.COLUMN_ID,
new String[]{String.valueOf(lists.get(i).getId())});
正确:
DbUtils.updateDBValue(getActivity(), Constant.COLUMN_INDEX,
i, Constant.COLUMN_ID + " = ?",
new String[]{String.valueOf(lists.get(i).getId())});
关键错误点:
在Where字段中缺少了+ " = ?"