Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
SoloIlya
0 / 0 / 0
Регистрация: 28.05.2013
Сообщений: 64
#1

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

10.06.2013, 01:12. Просмотров 665. Ответов 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);
При выполнении приложение слетает.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.06.2013, 01:12     Выборка из БД по заданному параметру
Посмотрите здесь:
Выборка по определенному параметру SQL Server
MySQL Выборка доступных значений по параметру
C# Найти числа близкие к нули по заданному параметру
C++ Удаление узла из односвязного списка по заданному параметру
Поиск и присвоение значений переменной по заданному параметру MS Excel
MS Excel Выборка данных из листов в сводную таблицу по основному параметру
VBA По заданному параметру найти и очистить диапазон, а не всю строку
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
V0v1k
1158 / 982 / 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/20...statement.html
SoloIlya
0 / 0 / 0
Регистрация: 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);
Оба варианта не работают, приложение при выполнении этих запросов слетает!
Что я не так делаю, может что-то в классе адаптере дописать?
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
10.06.2013, 13:36     Выборка из БД по заданному параметру #4
смотрите логи.
SoloIlya
0 / 0 / 0
Регистрация: 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();
Миниатюры
Выборка из БД по заданному параметру  
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
10.06.2013, 16:08     Выборка из БД по заданному параметру #6
NullPointerException в классе day строка 52
SoloIlya
0 / 0 / 0
Регистрация: 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);
Подскажите, что можно сделать чтоб решить эту проблему? Спасибо!
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
12.06.2013, 12:01     Выборка из БД по заданному параметру #8
и какая из этих строк 50?
SoloIlya
0 / 0 / 0
Регистрация: 28.05.2013
Сообщений: 64
12.06.2013, 19:11  [ТС]     Выборка из БД по заданному параметру #9
Извиняюсь, не посмотрел что номера строк не копируются!
Java
1
selection = NamesColumns.DATE+"LIKE"+tView4.getText();
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
12.06.2013, 22:31     Выборка из БД по заданному параметру #10
ну, здесь скорее всего tView4 null
SoloIlya
0 / 0 / 0
Регистрация: 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);
Ошибок вроде нет, но нечего не находит. Дата у меня хранится в строке. Что я делаю не так?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.06.2013, 19:41     Выборка из БД по заданному параметру
Еще ссылки по теме:
VBA Вывести список всех значений, соответствующих заданному параметру
C++ Описать процедуру maxmin (x, y) присваивает параметру х большее из вещественных чисел x и y, а параметру у -- меньшее
Oracle Выборка distinct по заданному условию
Выборка из бд по условию заданному переменной smalldatetime C#

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

Или воспользуйтесь поиском по форуму:
V0v1k
1158 / 982 / 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);
Yandex
Объявления
13.06.2013, 19:41     Выборка из БД по заданному параметру
Ответ Создать тему
Опции темы

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