Je développe l'application de menu de restaurant. Mon application a une table sqlite qui a ces colonnes:
"id", "category", "item_name"
Le contenu de la colonne de catégorie est de type chaîne. La clé primaire de la table est id
.
Je veux récupérer des données d'une catégorie particulière.
Par exemple, je souhaite récupérer les noms des éléments de tous les éléments de la catégorie Veg
, puis afficher ce résultat en mode liste.
J'ai essayé de suivre différentes requêtes mais les deux ne fonctionnent pas. Aidez-moi, s'il vous plaît.
String vg ="Veg";
Cursor mCursor = database.query(true, DATABASE_TABLE, new String[] {
KEY_ROWID, KEY_CATEGORY, KEY_NAME,KEY_PRIZE,KEY_DESCRIPTION },
KEY_CATEGORY + "=" + vg , null, null, null,null, null);
if (mCursor != null) {
mCursor.moveToFirst();
}
return mCursor;
Requête brute
String query = "SELECT * FROM todo WHERE category =" + vg ;
Cursor cursor = database.rawQuery(query,null);
if (cursor != null) {
cursor.moveToFirst();
}
return cursor;
essaye ça:
String query = "SELECT * FROM todo WHERE category='" + vg;
Cursor cursor = database.rawQuery(query,null);
if (cursor != null) {
cursor.moveToFirst();
}
return cursor;
String query = "SELECT item_name FROM todo WHERE category =" + vg ;
Cursor cursor = database.rawQuery(query,null);
if (cursor.moveToFirst()) {
while (cursor.isAfterLast() != true) {
string itemname = cursor.getString(cursor.getColumnIndex("item_name")));
}
}
MoveToFirst vérifie ici si certains éléments satisfont aux critères, puis parcourt le curseur en utilisant la boucle while. La chaîne itemname peut être remplacée par list adaper pour renseigner les données. J'espère que cela t'aides.
dbHelper = new DBHelper(getApplicationContext());
SQLiteDatabase db = dbHelper.getReadableDatabase();
Cursor cursor = db.rawQuery("select * from centuaryTbl where email='"+email+"'",null);
if (cursor.moveToFirst())
{
do
{
String s1 = cursor.getString(cursor.getColumnIndex("s1"));
String s2 = cursor.getString(cursor.getColumnIndex("s2"));
String s3 = cursor.getString(cursor.getColumnIndex("s3"));
}while (cursor.moveToNext());
}
String query = "SELECT * FROM Table_Name WHERE Col_Name='name'";
Cursor cursor = mDb.rawQuery(query, null);
Essaye ça:
String vg ="Veg";
return database.rawQuery("SELECT * FROM subjects where " + KEY_CATEGORY + " = ?",
new String[]{vg});
String q="SELECT * FROM todo WHERE category='" + vg +"'";
SQLiteDatabase db = this.getWritableDatabase();
Cursor cursor = null;
cursor = db.rawQuery(q, null);
if (cursor.moveToFirst()) {
do {
} while (cursor.moveToNext());
}
public List<String> getAllData(String email)
{
db = this.getReadableDatabase();
String[] projection = {email};
List<String> list = new ArrayList<>();
Cursor cursor = db.query(Table_name,null,"email=?",projection,null,null,null,null);
// cursor.moveToFirst();
if(cursor.moveToFirst()) {
do {
list.add(cursor.getString(cursor.getColumnIndex("id")));
list.add(cursor.getString(cursor.getColumnIndex("name")));
list.add(cursor.getString(cursor.getColumnIndex("email")));
list.add(cursor.getString(cursor.getColumnIndex("password")));
// cursor.moveToNext();
} while (cursor.moveToNext());
}
return list;
}
String selectQuery = "select * from " + TABLE;
sqlDatabase = this.getWritableDatabase();
Cursor cursor = sqlDatabase.rawQuery(selectQuery, null);
if (cursor != null) {
cursor.moveToFirst();
}
return cursor;
cela vous aidera ..