SQLite
 sql >> Database >  >> RDS >> SQLite

Errore SQLite Android:il numero della variabile deve essere compreso tra ?1 e ?999

Questa riga:

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

non è corretto.
Hai 2 scelte.
Il primo consiste nel concatenare il valore passato a LoginTable.Cols.CONSUMER_ID così:

db.update(LoginTable.TABLE_NAME, values, LoginTable.Cols.CONSUMER_ID + " = '" + userModel.consumer_no + "'", null);

se userModel.consumer_no è una stringa oppure:

db.update(LoginTable.TABLE_NAME, values, LoginTable.Cols.CONSUMER_ID + " = " + userModel.consumer_no, null);

se userModel.consumer_no è un valore intero.
La seconda scelta è migliore e più sicura:

db.update(LoginTable.TABLE_NAME, values, LoginTable.Cols.CONSUMER_ID + " = ?", new String[] { String.valueOf(userModel.consumer_no) });

Puoi omettere String.valueOf() se userModel.consumer_no è una stringa.

L'errore nel tuo codice è che hai combinato in qualche modo i 2 modi precedenti per passare l'argomento userModel.consumer_no all'update() metodo.