SQLite
 sql >> Baza danych >  >> RDS >> SQLite

Błąd Android SQLite:numer zmiennej musi mieścić się w zakresie od ?1 do? 999?

Ta linia:

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

jest nieprawidłowe.
Masz 2 możliwości.
Pierwszym jest połączenie wartości przekazanej do LoginTable.Cols.CONSUMER_ID tak:

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

jeśli userModel.consumer_no jest ciągiem lub:

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

jeśli userModel.consumer_no jest liczbą całkowitą.
Drugi wybór jest lepszy i bezpieczniejszy:

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

Możesz pominąć String.valueOf() jeśli userModel.consumer_no jest ciągiem.

Błąd w twoim kodzie polega na tym, że w jakiś sposób pomieszałeś powyższe 2 sposoby przekazywania argumentu userModel.consumer_no do update() metoda.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. onCreate() funkcji RoomDatabase.Callback() nie został wywołany po pomyślnym wywołaniu funkcji .build()

  2. Tabela opisów SQLite

  3. Jak zaimplementować SQLCipher podczas korzystania z SQLiteOpenHelper

  4. Kursor SQLiteDatabase pusty tylko na urządzeniach z systemem Android 5.0+

  5. Android Studio 3.0 canary 1:błąd składni SQL