sql >> Databasteknik >  >> RDS >> SQLite

Android SQLite-fel:variabelnummer måste vara mellan ?1 och ?999

Denna rad:

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

är inkorrekt.
Du har 2 val.
Den första är att sammanfoga värdet som skickas till LoginTable.Cols.CONSUMER_ID så här:

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

om userModel.consumer_no är en sträng, eller:

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

om userModel.consumer_no är ett heltalsvärde.
Det andra valet är bättre och säkrare:

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

Du kan utelämna String.valueOf() om userModel.consumer_no är en sträng.

Felet i din kod är att du på något sätt blandade de två ovanstående sätten att skicka argumentet userModel.consumer_no till update() metod.




  1. MYSQL ORDER BY CASE Problem

  2. Hämta data från lagrad procedur med Entity Framework

  3. Kan inte helt enkelt använda PostgreSQL-tabellnamn (relation finns inte)

  4. Checker Run