Je rencontre des problèmes lors de la recherche d'une base de données SQLite dans mon application Android. J'utilise l'interface de recherche pour passer la variable de recherche (searchActivity.query) à ceci:Rechercher dans la base de données SQLite dans Android
//searchActivity.query obtained from:
//String query = searchActivity.getStringExtra(SearchManager.QUERY);
String searchString = "'" + searchActivity.query + "%'";
//sqlitedb is called via: private SQLiteDatabase sqlitedb;
Cursor cursor = sqlitedb.query(DATABASE_TABLE, new String[]
{"id", "FirstName","LastName"},
"FirstName LIKE " + searchString, null, null, null, null);
int index_CONTENT = cursor.getColumnIndex(FirstName);
for(cursor.moveToFirst(); !(cursor.isAfterLast()); cursor.moveToNext()){
result = result + cursor.getString(index_CONTENT) + "\n";
}
Le problème est que l'utilisation de la « LIKE » sorties déclaration tout dans la base de données - en battant le but d'utiliser l'interface de recherche. Je ne sais pas trop où je vais mal.
J'ai essayé de remplacer LIKE par "=", sauf que rien n'a été affiché, même si j'étais sûr à 100% que l'enregistrement existait.
Toute aide serait grandement appréciée!
Merci à l'avance,
Joe
MISE À JOUR: Désolé pour le titre trompeur. Je ne passais pas la requête de recherche correctement.
Merci d'avoir répondu. Il affiche toujours tout dans la base de données. – Jamie
searchActivity.query est la suivante: String query = searchActivity.getStringExtra (SearchManager.QUERY); J'ai un enregistrement nommé 'b' dans la base de données. Quand je l'ai fait "LIKE 'b%" "cela a fonctionné (il a seulement affiché cet enregistrement). Cependant, il sort toujours tout autrement .. – Jamie
juste déboguer et voir quelle est la valeur searchActivity.query ont quand la requête a tiré parce que je pense que vous n'avez rien dans ce qui est pourquoi. – user370305