Zu viele Binde-Argumente. Es wurden 5 Argumente angegeben, aber die Anweisung benötigt 4 Argumente

8

Ich erhalte die obige IllegalArgumentException, wenn ich die folgende Funktion ausführe. Was ich nicht verstehe ist, dass wenn ich den Debugger starte, die Werte Variable eindeutig nur 4 Argumente enthält, wie es sollte.

Also ...

(1) Woher kommt dieses mysteriöse fünfte Argument?

(2) Wie sollte ich diesen Fehler finden?

%Vor%     
abc32112 17.07.2014, 07:43
quelle

1 Antwort

37
  

Die Auswahl enthält Folgendes: String selection="_id"; String [] selectionArgs = {"=" + personId};

Sie haben einen Wert in selectionArgs , aber keinen ? Platzhalter dafür in selection .

Ändern Sie es in

%Vor%

Die Methode erstellt eine SQL-Zeichenfolge. Geliefert ContentValues werden als ? Platzhalter und Binde Argumente erstellt. Zusätzliche Auswahlargumente werden ebenfalls als Bindeargumente bereitgestellt und müssen mit der gleichen Anzahl von ? Platzhaltern verglichen werden.

    
laalto 17.07.2014, 07:58
quelle

Tags und Links