SQLite
 sql >> Base de données >  >> RDS >> SQLite

Erreur Android SQLite :le numéro de la variable doit être compris entre ?1 et ?999

Cette ligne :

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

est incorrect.
Vous avez 2 choix.
La 1ère consiste à concaténer la valeur passée à LoginTable.Cols.CONSUMER_ID comme ceci :

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

si userModel.consumer_no est une chaîne, ou :

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

si userModel.consumer_no est une valeur entière.
Le 2ème choix est meilleur et plus sûr :

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

Vous pouvez omettre String.valueOf() si userModel.consumer_no est une chaîne.

L'erreur dans votre code est que vous avez mélangé d'une manière ou d'une autre les 2 façons ci-dessus de passer l'argument userModel.consumer_no à la update() méthode.