SQLite
 sql >> Base de Dados >  >> RDS >> SQLite

Erro do Android SQLite:o número da variável deve estar entre ?1 e ?999


Está linha:
db.update(LoginTable.TABLE_NAME, values, LoginTable.Cols.CONSUMER_ID + "=?" + userModel.consumer_no, null);

está incorreto.
Você tem 2 opções.
O primeiro é concatenar o valor passado para LoginTable.Cols.CONSUMER_ID assim:
db.update(LoginTable.TABLE_NAME, values, LoginTable.Cols.CONSUMER_ID + " = '" + userModel.consumer_no + "'", null);

if userModel.consumer_no é uma string, ou:
db.update(LoginTable.TABLE_NAME, values, LoginTable.Cols.CONSUMER_ID + " = " + userModel.consumer_no, null);

if userModel.consumer_no é um valor inteiro.
A 2ª ​​escolha é melhor e mais segura:
db.update(LoginTable.TABLE_NAME, values, LoginTable.Cols.CONSUMER_ID + " = ?", new String[] { String.valueOf(userModel.consumer_no) });

Você pode omitir String.valueOf() if userModel.consumer_no é uma string.

O erro no seu código é que você misturou de alguma forma as 2 maneiras acima de passar o argumento userModel.consumer_no para o update() método.