sql >> Database >  >> RDS >> SQLite

Android SQLite-fout:het variabelenummer moet tussen ?1 en ?999 . liggen

Deze regel:

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

is onjuist.
Je hebt 2 keuzes.
De eerste is om de waarde samen te voegen die is doorgegeven aan LoginTable.Cols.CONSUMER_ID zoals dit:

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

if userModel.consumer_no is een string, of:

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

if userModel.consumer_no is een geheel getal.
De 2e keuze is beter en veiliger:

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

U kunt String.valueOf() weglaten if userModel.consumer_no is een string.

De fout in je code is dat je op de een of andere manier de bovenstaande 2 manieren hebt gemengd om het argument userModel.consumer_no door te geven naar de update() methode.




  1. De meest elegante manier om permutaties in SQL-server te genereren

  2. MySQL Workbench:hoe de verbinding levend te houden

  3. Oracle Database 21c voor Linux-platforms

  4. Hoe maak je een externe sleutel met ON UPDATE CASCADE op Oracle?