SQLite
 sql >> Datenbank >  >> RDS >> SQLite

Android SQLite-Fehler:Variablennummer muss zwischen ?1 und ?999 liegen

Diese Zeile:

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

ist falsch.
Sie haben 2 Möglichkeiten.
Der erste besteht darin, den an LoginTable.Cols.CONSUMER_ID übergebenen Wert zu verketten so:

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

wenn userModel.consumer_no ist ein String, oder:

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

wenn userModel.consumer_no ist ein ganzzahliger Wert.
Die 2. Wahl ist besser und sicherer:

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

Sie können String.valueOf() weglassen wenn userModel.consumer_no ist ein String.

Der Fehler in Ihrem Code besteht darin, dass Sie die beiden oben genannten Möglichkeiten zur Übergabe des Arguments userModel.consumer_no irgendwie gemischt haben zum update() Methode.