Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
SoloIlya
0 / 0 / 3
Регистрация: 28.05.2013
Сообщений: 64
#1

Выборка из БД по заданному параметру - Программирование Android

10.06.2013, 01:12. Просмотров 702. Ответов 11
Метки нет (Все метки)

Доброго времени суток!
У меня есть таблица БД, содержимое которой я вывожу в listview, еще есть в этом же активити textview в котором информация динамически изменяется. Мне надо чтобы данные БД, которые выводятся в listview сравнивались с данными textview. Как написать правильный запрос?
Делаю так:
Java
1
2
3
4
5
           String selection;
        selection = "NamesColumns.NAME = tview4";
        final String[] columns = { NamesColumns.NAME };
        final Cursor c = sqliteDB.query(Names.TABLE_NAME, null, selection, null, null, null,
                Names.DEFAULT_SORT);
При выполнении приложение слетает.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.06.2013, 01:12
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Выборка из БД по заданному параметру (Программирование Android):

Выборка по определенному параметру
День добрый имеется такой вопрос. Допустим есть запрос который выдает Имя...

Выборка доступных значений по параметру
Здравствуйте, помогите, пожалуйста, составить запрос MySQL (хотя, думаю, одним...

Удаление узла из односвязного списка по заданному параметру
Имеется: программа для добавления данных студента/ов, распечатывание его/их...

Поиск и присвоение значений переменной по заданному параметру
В зависимости от размера груза определяется его степень негабаритности. Буду...

Найти числа близкие к нули по заданному параметру
Помогите!!! В общем, я не знаю ,как задать условия, чтобы он не ругался , что...

Выборка данных из листов в сводную таблицу по основному параметру
День добрый Есть задача - имеется 4 листа с данными. В каждой строке данные...

11
V0v1k
1160 / 984 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
10.06.2013, 01:35 #2
примерно так
Java
1
selection = NamesColumns.NAME + " LIKE " + tview4.getText();
Добавлено через 2 минуты
http://androidwright.blogspot.com/2011/03/sqlite-like-statement.html
1
SoloIlya
0 / 0 / 3
Регистрация: 28.05.2013
Сообщений: 64
10.06.2013, 10:33  [ТС] #3
Сделал так:
Java
1
2
3
4
5
String selection;
  selection = NamesColumns.DATE + "LIKE" + tView4.getText();
        final String[] columns = { NamesColumns.NAME , NamesColumns.DATE, NamesColumns.PRICE, NamesColumns.KOL };
        final Cursor c = sqliteDB.query(Names.TABLE_NAME, selection, null, null, null, null, null,
                Names.DEFAULT_SORT);
и так:
Java
1
2
3
        final String[] columns = { NamesColumns.NAME , NamesColumns.DATE, NamesColumns.PRICE, NamesColumns.KOL };
        final Cursor c = sqliteDB.query(Names.TABLE_NAME, columns, NamesColumns.DATE+ " LIKE "+tView4.getText(), null, null, null, null, null,
                Names.DEFAULT_SORT);
Оба варианта не работают, приложение при выполнении этих запросов слетает!
Что я не так делаю, может что-то в классе адаптере дописать?
0
V0v1k
1160 / 984 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
10.06.2013, 13:36 #4
смотрите логи.
1
SoloIlya
0 / 0 / 3
Регистрация: 28.05.2013
Сообщений: 64
10.06.2013, 14:52  [ТС] #5
Помогите разобраться с этими логами!!!
При выполнении такого кода:
Java
1
2
3
4
final String[] columns = { NamesColumns.NAME , NamesColumns.DATE, NamesColumns.PRICE, NamesColumns.KOL };
        final Cursor c = sqliteDB.query(Names.TABLE_NAME, columns, NamesColumns.DATE+"=?", new String[]{(String) tView4.getText()}, null, null, null,
                Names.DEFAULT_SORT);
        final int i = c.getCount();
0
Миниатюры
Выборка из БД по заданному параметру  
V0v1k
1160 / 984 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
10.06.2013, 16:08 #6
NullPointerException в классе day строка 52
1
SoloIlya
0 / 0 / 3
Регистрация: 28.05.2013
Сообщений: 64
12.06.2013, 11:54  [ТС] #7
При выполнении этого кода, тоже падает приложение (в логах: NullPointerException, строка 50)
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
DatabaseOpenHelper dbhelper = new DatabaseOpenHelper(getBaseContext());
        SQLiteDatabase sqliteDB = dbhelper.getReadableDatabase();
        String selection;
        selection = NamesColumns.DATE+"LIKE"+tView4.getText();
        final String[] columns = { NamesColumns.NAME , NamesColumns.DATE, NamesColumns.PRICE, NamesColumns.KOL };
        final Cursor c = sqliteDB.query(Names.TABLE_NAME, null, selection, null, null, null,
                Names.DEFAULT_SORT);
        final int i = c.getCount();
        final int[] to = new int[] { R.id.text1,  R.id.text2, R.id.text3, R.id.text4};
        final SimpleCursorAdapter adapter = new SimpleCursorAdapter(getApplicationContext(), R.layout.list,
                c, columns, to);
        final ListView lv = (ListView) findViewById(R.id.listView1);        
        lv.setAdapter(adapter);
Подскажите, что можно сделать чтоб решить эту проблему? Спасибо!
0
V0v1k
1160 / 984 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
12.06.2013, 12:01 #8
и какая из этих строк 50?
1
SoloIlya
0 / 0 / 3
Регистрация: 28.05.2013
Сообщений: 64
12.06.2013, 19:11  [ТС] #9
Извиняюсь, не посмотрел что номера строк не копируются!
Java
1
selection = NamesColumns.DATE+"LIKE"+tView4.getText();
0
V0v1k
1160 / 984 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
12.06.2013, 22:31 #10
ну, здесь скорее всего tView4 null
1
SoloIlya
0 / 0 / 3
Регистрация: 28.05.2013
Сообщений: 64
13.06.2013, 17:50  [ТС] #11
Перед запуском передается значение этому TextView.

Добавлено через 6 минут
Попробовал сделать так:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
String textvieew = "18/5/2013";
final Context context = this;
    int rowId = 0;
 
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.day);
        DatabaseOpenHelper dbhelper = new DatabaseOpenHelper(getBaseContext());
        SQLiteDatabase sqliteDB = dbhelper.getReadableDatabase();
        final String[] columns = { NamesColumns.NAME , NamesColumns.DATE, NamesColumns.PRICE, NamesColumns.KOL };
        final Cursor c = sqliteDB.query(Names.TABLE_NAME, columns, NamesColumns.DATE+"=?", new String[]{"18/5/2013"}, null, null,
                Names.DEFAULT_SORT);
        final int i = c.getCount();
        final int[] to = new int[] { R.id.text1,  R.id.text2, R.id.text3, R.id.text4};
        final SimpleCursorAdapter adapter = new SimpleCursorAdapter(getApplicationContext(), R.layout.list,
                c, columns, to);
        final ListView lv = (ListView) findViewById(R.id.listView1);        
        lv.setAdapter(adapter);
Ошибок вроде нет, но нечего не находит. Дата у меня хранится в строке. Что я делаю не так?
0
V0v1k
1160 / 984 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
13.06.2013, 19:41 #12
Java
1
final Cursor c = sqliteDB.query(Names.TABLE_NAME, columns, NamesColumns.DATE+" LIKE ?", new String[]{"18/5/2013"}, null, null, Names.DEFAULT_SORT);
1
13.06.2013, 19:41
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.06.2013, 19:41
Привет! Вот еще темы с решениями:

По заданному параметру найти и очистить диапазон, а не всю строку
В приложенном файле описана задача, с которой не могу справиться. Суть в том,...

Вывести список всех значений, соответствующих заданному параметру
Добрый день! подскажите пожалуйста, как выбирая в ячейке A1 ("лист1") ключ,...

Описать процедуру maxmin (x, y) присваивает параметру х большее из вещественных чисел x и y, а параметру у -- меньшее
Процедура maxmin (x, y) присваивает параметру х большее из вещественных чисел x...

Выборка distinct по заданному условию
Добрый день, уважаемые знатоки SQL! Довелось мне писать миграционные...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru