Android sqlite: как получить конкретные данные из определенного столбца? - PullRequest
8 голосов
/ 12 сентября 2011

Я занимаюсь разработкой приложения для меню ресторана. В моем приложении есть таблица sqlite со следующими столбцами:

"id", "category", "item_name"

Содержимое столбца категории имеет тип string. Первичный ключ таблицы id.

Я хочу получить данные определенной категории.

Например, я хочу получить имена элементов всех элементов, которые находятся в категории Veg, а затем отобразить этот результат в виде списка.

Я пробовал следовать различным запросам, но оба они не работают. Пожалуйста, помогите мне.

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;

Необработанный запрос

String query = "SELECT * FROM todo WHERE category =" + vg ;
          Cursor  cursor = database.rawQuery(query,null);
            if (cursor != null) {
                cursor.moveToFirst();
            }
            return cursor;

Ответы [ 8 ]

14 голосов
/ 12 сентября 2011

попробуйте это:

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

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

        if (cursor != null) {
            cursor.moveToFirst();
        }
        return cursor;
11 голосов
/ 12 сентября 2011
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 проверяет наличие элементов, удовлетворяющих критериям, а затем перебирает курсор, используя цикл while.Строка itemname может быть заменена списком adaper для заполнения данных.Надеюсь, это поможет.

6 голосов
/ 12 апреля 2016
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());
}
3 голосов
/ 18 сентября 2017
String query = "SELECT * FROM Table_Name WHERE Col_Name='name'";
Cursor cursor = mDb.rawQuery(query, null);
1 голос
/ 20 августа 2013

Попробуйте это:

String vg ="Veg";
return database.rawQuery("SELECT * FROM subjects where " + KEY_CATEGORY + " = ?",
                            new String[]{vg});
0 голосов
/ 02 августа 2018
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 голосов
/ 17 февраля 2017
String selectQuery = "select * from " + TABLE;
        sqlDatabase = this.getWritableDatabase();

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

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


    return cursor;

тебе это поможет ..

0 голосов
/ 19 сентября 2013
  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());

        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...