sql >> Databáze >  >> RDS >> SQLite

Chyba Android SQLite:číslo proměnné musí být mezi ?1 a ?999

Tento řádek:

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

je nesprávné.
Máte 2 možnosti.
Prvním je zřetězení hodnoty předané do LoginTable.Cols.CONSUMER_ID takhle:

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

if userModel.consumer_no je řetězec nebo:

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

if userModel.consumer_no je celočíselná hodnota.
Druhá volba je lepší a bezpečnější:

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

String.valueOf() můžete vynechat if userModel.consumer_no je řetězec.

Chyba ve vašem kódu je, že jste nějak smíchali výše uvedené 2 způsoby předání argumentu userModel.consumer_no na update() metoda.




  1. Seskupit SQLite podle/počítat hodiny, dny, týdny, rok

  2. Získání a instalace Microsoft SQL Server Management Studio

  3. Více volání array_agg() v jednom dotazu

  4. Výměna hodnot sloupců v MySQL