sql >> Database teknologi >  >> RDS >> SQLite

Android SQLite-fejl:Variabelnummer skal være mellem ?1 og ?999

Denne linje:

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

er forkert.
Du har 2 valg.
Den første er at sammenkæde den værdi, der er sendt til LoginTable.Cols.CONSUMER_ID sådan her:

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

hvis userModel.consumer_no er en streng, eller:

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

hvis userModel.consumer_no er en heltalsværdi.
Det andet valg er bedre og sikrere:

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

Du kan udelade String.valueOf() hvis userModel.consumer_no er en streng.

Fejlen i din kode er, at du på en eller anden måde blandede ovenstående 2 måder at videregive argumentet userModel.consumer_no til update() metode.




  1. SQLite-indstilling af ydeevne

  2. Har Oracle en ækvivalent til SQL Servers tabelvariabler?

  3. Når der ikke er angivet nogen 'Bestil efter', hvilken rækkefølge vælger en forespørgsel for dit rekordsæt?

  4. Indsætte hele DataTable i databasen på én gang i stedet for række for række?