web-dev-qa-db-fra.com

Android sqlite: comment récupérer des données spécifiques d'une colonne en particulier?

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;
8
sagar

essaye ça:

String query = "SELECT * FROM todo WHERE category='" + vg;

Cursor  cursor = database.rawQuery(query,null);

        if (cursor != null) {
            cursor.moveToFirst();
        }
        return cursor;
14
Lavanya
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.

9
Tushar Vengurlekar
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());
}
5
Manikanta Reddy
String query = "SELECT * FROM Table_Name WHERE Col_Name='name'";
Cursor cursor = mDb.rawQuery(query, null);
2
PJ2104

Essaye ça:

String vg ="Veg";
return database.rawQuery("SELECT * FROM subjects where " + KEY_CATEGORY + " = ?",
                            new String[]{vg});
1
Godric
  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());

        }
0
Rishi Gautam
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;
}
0
abc
String selectQuery = "select * from " + TABLE;
        sqlDatabase = this.getWritableDatabase();

     Cursor cursor = sqlDatabase.rawQuery(selectQuery, null);

    if (cursor != null) {
        cursor.moveToFirst();
    }


    return cursor;

cela vous aidera ..

0
Manish