【发布时间】:2020-05-02 23:16:08
【问题描述】:
当我尝试使用更大的数字更新我的表时,我收到以下错误。
SQLiteLog: (1) 变量号必须在?1 和?999 之间 W/System.err:android.database.sqlite.SQLiteException:变量号 必须介于 ?1 和 ?999 (code 1): 之间,编译时: UPDATE LoginTable SET image=?,alternate_contact=?,alternate_email=?在哪里 consumer_id=?74123
代码是:-
public static void updateProfileInfo(Context context, Consumer userModel, String consumerno) {
SQLiteDatabase db = DatabaseProvider.dbHelper.getReadableDatabase();
ContentValues values = new ContentValues();
values.put(LoginTable.Cols.ALTERNATE_EMAIL_ID, userModel.alternate_email != null ? userModel.alternate_email : "");
values.put(LoginTable.Cols.PROFILE_IMAGE, userModel.profileImage != null ? userModel.profileImage : "");
values.put(LoginTable.Cols.ALTERNATE_CONTACT_NO, userModel.alternateContact != null ? userModel.alternateContact : "");
db.update(LoginTable.TABLE_NAME, values, LoginTable.Cols.CONSUMER_ID + "=?" + userModel.consumer_no, null);
if (db.isOpen()) {
db.close();
}
}
消费者编号声明为 VARCHAR
消费者编号可能是长度为 1 到 999999999999 的数字
我应该将类型更改为其他类型吗??
【问题讨论】:
-
请使用代码块正确格式化您的代码。此外,该错误会告诉您究竟出了什么问题。您有一些限制,这意味着最大数字(我假设它意味着 ID)必须大于 1 并且小于(或等于)999。请从您的项目中发布更多示例代码,例如数据库/表是如何创建的
-
?74123是问题所在,其原因在于生成此 SQL 的代码。请发布该代码。 -
有关
?NNN含义的详细信息,请参阅sqlite.org/lang_expr.html#varparam,顺便说一句 - 明确编号的参数。
标签: java android sqlite android-sqlite