Dalla documentazione della classe SQLiteDatabase di Android:
Esegui una singola istruzione SQL che NON sia una SELECT o qualsiasi altra istruzione SQL che restituisca dati.
Non ha mezzi per restituire alcun dato (come il numero di righe interessate). Invece, sei incoraggiato a usare insert(String, String,ContentValues), update(String, ContentValues, String, String[]), etal, quando possibile.
Poi dopo:
Per le istruzioni UPDATE, utilizza invece una delle seguenti.
update(String, ContentValues, String, String[])
updateWithOnConflict(String, ContentValues, String, String[], int)
Per quanto ne so, execSQL
è più per operazioni di database di livello superiore, come la creazione di tabelle e la modifica dello schema, e il .query
, .update
, .delete
, ecc. devono essere utilizzati per modificare le righe. Non sono sicuro che tu abbia un'altra opzione oltre a .update
per eseguire questa operazione.