Dass Abfrageparameter nur Zeichenfolgen sein können, ist ein schrecklicher Designfehler in der Android-Datenbank-API.
Ungeachtet dessen, was die Dokumentation sagt, sollten Sie Parameter nur für tatsächliche Zeichenfolgenwerte verwenden; Integer-Werte können sicher direkt in die SQL-Zeichenfolge eingebettet werden. (Für Blobs müssen Sie eine Funktion verwenden, die ContentValues
akzeptiert .)
Bitte beachten Sie, dass SQLite zwar dynamische Typisierung verwendet, Werte unterschiedlicher Typen jedoch nicht Vergleich in den meisten Fällen gleich (SELECT 42='42';
gibt 0
zurück ).Es gibt einige Fälle, in denen SQLite es tut Werte aufgrund der Typaffinität automatisch umwandeln (in Ihrem Fall würde dies passieren, wenn Sie die id
deklarieren Spalte als INTEGER
), aber das ist eher kontraintuitiv, also sollte man sich nicht darauf verlassen.