ВЫБЕРИТЕ, ГДЕ sql запросить Android вопрос - PullRequest
0 голосов
/ 09 мая 2011

Я - новичок в программировании, и у меня возникают проблемы с реализацией запроса SELECT с WHERE year_id = 'выбранная переменная года' для отображения результатов в виде списка. Мой код, как показано ниже, отображает все записи, хранящиеся в базе данных. Как я могу изменить это, чтобы отфильтровать его до выбранного года в пределах year_id, поскольку все, что я пытаюсь сделать, приводит к сбою моего приложения? Я часами искал учебники и подобные вопросы, но все еще теряюсь в отношении ответа ....... был бы очень признателен за помощь

MyDBHelper mh = new MyDBHelper(this);
mDb = mh.getWritableDatabase();
mCursor = mDb.query("tracker", null, null, null, null, null,
    "category_name ASC");
startManagingCursor(mCursor);

int view[] = {R.id.categoryNameView, R.id.dataView, R.id.placeView, R.id.amountView};
String col[] = { "category_name", "date", "place", "amount"};

SimpleCursorAdapter ca = new SimpleCursorAdapter(
        this, R.layout.display_item, mCursor, col, view);

DisplayAllView = (ListView) findViewById(R.id.DisplayDateListView);
DisplayAllView.setAdapter(ca);

1 Ответ

2 голосов
/ 09 мая 2011

Посмотрите на javadoc для db.query

3d и 4-й аргументы:

selection Фильтр, определяющий, какие строки возвращать, отформатированный какпредложение SQL WHERE (исключая сам WHERE).Передача null вернет все строки для данной таблицы.selectionArgs Вы можете включить? s в выделение, которые будут заменены значениями из selectionArgs, чтобы они появлялись в выделении.Значения будут связаны в виде строк.

Так что вы бы сделали что-то вроде

mCursor = mDb.query("tracker", null, 
          "year_id = ?", new String[] { String.valueOf(year)}, 
          null, null,  "category_name ASC");
...