SQLite
 sql >> база данни >  >> RDS >> SQLite

Грешка в Android SQLite:номерът на променливата трябва да е между ?1 и ?999

Този ред:

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

е неправилно.
Имате 2 избора.
Първият е конкатенирането на стойността, предадена на LoginTable.Cols.CONSUMER_ID така:

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

if userModel.consumer_no е низ или:

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

if userModel.consumer_no е целочислена стойност.
Вторият избор е по-добър и по-безопасен:

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

Можете да пропуснете String.valueOf() if userModel.consumer_no е низ.

Грешката във вашия код е, че сте смесили по някакъв начин горните 2 начина за предаване на аргумента userModel.consumer_no към update() метод.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как правилно да затворите курсора в android

  2. Извадете години от дата в SQLite

  3. Вмъкване или актуализиране на Android SQLite

  4. Самоприсъединяване към SQLite

  5. Таблицата не се създава sqlite android