Android SQLiteException: problème de liaison ou d'index de colonne hors de portée
Android, et je suis à l'aide de l'instruction suivante.
model = dataHelper.rawQuery("SELECT _id, engword, lower(engword) as letter FROM word WHERE letter >= 'a' AND letter < '{' AND engword LIKE '%" + filterText + "%'", new String[ {"_id","engword", "lower(engword) as letter"});
Il est en train de jeter android.database.sqlite.SQLiteException: bind or column index out of range: handle 0x132330
Quel est le problème dans mon code?
source d'informationauteur dev_android | 2011-04-19
Vous devez vous connecter pour publier un commentaire.
Le droit énoncé est :
Vous fourni des 3 paramètres, mais vous n'avez pas de
?
dans votre requête. Passer la valeur null à la place de tableau de chaîne comme le 2e argument de larawQuery
ou remplacer_id
engword
etlower(engword) as letter
dans votre sélectionnez chaîne par?
1)
2)
Edit:
@Ewoks souligné, l'option (1) est erronée, puisque les instructions préparées pouvez obtenir les paramètres (?s) dans la clause where.
Si quelqu'un est comme moi d'essayer (et de l'échec) de le faire fonctionner avec
getContentResolver().query
ici comment j'ai réussi:*Mis à jour grâce à des commentaires de @CL et @Wolfram Rittmeyer, comme ils l'ont dit c'est le même que pour rawQuery *
Façon correcte:
Réponse précédente qui était ouvert à une attaque par injection SQL: