2014-07-17 3 views
7

Ho ottenuto l'IllegalArgumentException sopra quando eseguo la funzione di seguito. Quello che non capisco è che quando eseguo il debugger, la variabile valori contiene solo 4 argomenti, come dovrebbe.Troppi argomenti di collegamento. Sono stati forniti 5 argomenti ma l'istruzione richiede 4 argomenti

Quindi ...

(1) da dove viene questo quinto argomento misterioso viene?

(2) Come devo avvicinarmi alla ricerca di questo errore?

db.update(
    UppdragEntry.TABLE_NAME, 
    values, 
    selection, 
    selectionArgs); 
+0

* La selezione * contiene quanto segue: Selezione stringa = "_id"; String [] selectionArgs = {"=" + personId}; – abc32112

risposta

34

selezione contiene il seguente: stringa di selezione = "_id"; String [] selectionArgs = {"=" + personId};

Si hanno un valore in selectionArgs ma non ? segnaposto per essa in selection.

Change a

String selection = "_id = ?"; 
String[] selectionArgs = { "" + personId }; 

Il metodo crea una stringa SQL. Fornito ContentValues sono costruiti come ? argomenti segnaposto e segnaposto. Ulteriori argomenti di selezione vengono anche forniti come argomenti di collegamento e devono essere associati a un uguale numero di segnaposti ?.

+0

Funziona, grazie! – abc32112

+1

Ho avuto? in selectionArgs ma in caso di stringa che ho convertito? in "?" che è stato un errore –

+0

Bene, è molto meglio aggiungere String.valueOf (personId) in selectionArgs. – SanchelliosProg