【发布时间】:2021-11-15 20:18:19
【问题描述】:
我使用此代码更新我在 java 中的记录:
ArrayList<String> goalsNameList = new ArrayList<>();
for (Goal goal : goalsList) {
goalsNameList.add(goal.getName());
}
String[] goals = goalsNameList.toArray(new String[0]);
ContentValues cv = new ContentValues();
cv.put(GoalEntry.COLUMN_GOAL_PARENT, parent.getName());
sQLiteDatabase.update(GoalEntry.TABLE_NAME, cv, GoalEntry.COLUMN_GOAL_NAME + " IN (?, ?)", goals);
我得到这个错误:
java.lang.IllegalArgumentException: Too many bind arguments. 6 arguments were provided but the statement needs 3 arguments.
我也尝试过使用一个单元格String 数组而不是将goals 作为多个参数的String 数组插入,该数组包含所有参数,它们之间用逗号连接,就好像它是一个普通的@987654326 @ 声明,它没有留下错误消息,但也没有工作(单元格没有更新)。
如何使有效的参数数量(绑定参数)不受限制?我不知道我在数组中得到的参数数量,它不限于任何数量。
【问题讨论】:
标签: java android sql sqlite android-studio