Android - выборка только строк со значением в столбце в Java - PullRequest
0 голосов
/ 23 июля 2011

Прежде всего, пожалуйста, потерпите меня, у меня минимальный опыт работы с SQLite. Я пишу приложение на Java для платформы Android и столкнулся с проблемой при попытке запросить базу данных SQLite.

Я реализовал базу данных, и я не уверен, как написать метод, который возвращает курсор только из определенных строк с определенным значением в определенном столбце. Скажем, есть столбец с именем «date», я хотел бы написать метод, который возвращает все столбцы, которые не имеют значения строки «null» в столбце «date».

Я знаю, как написать метод fetchAll () и как написать fetch () для определенных строк с заданным идентификатором, но я не являюсь несколькими конкретными строками.

Если кто-нибудь может мне помочь, это будет очень признательно.

Ответы [ 2 ]

4 голосов
/ 23 июля 2011

Они вернут всю строку, где Date! = Null

public Cursor fetch() 
        {
            return db.query(DATABASE_TABLE,
                    null, 
                    DATE + "!=''",
                    null,
                    null, 
                    null, 
                    null);                        


        }

Если вам не нужны все столбцы, используйте

public Cursor fetch() 
            {
                return db.query(DATABASE_TABLE,new String[] {
                    DATE,
                    TIME
                    },                        
                        DATE + "!=''",
                        null,
                        null, 
                        null, 
                        null);                           


            }
0 голосов
/ 23 июля 2011

Для извлечения нескольких строк с помощью curosor, попробуйте это, Вы можете настроить его для своих нужд:

public List<String> getNotNullValues(String value) {
        String[] resultCols = new String[] { "Give your result column name here" }; //u could specify multiple column name here
        List<String> list = new ArrayList<String>();
        int count = 0;
        Cursor cr = getWord("DATE", "Your Table Name", "Value of the column",
                resultCols,"!="); //Cr is the cursor for resulted query
        if (null == cr) {
            return null;
        }
        do {
            list.add(cr.getString(0)); //Fill the list or whatever here while traversing with the cursor

        } while (cr.moveToNext());
        cr.close();
        return list;
    }

}



public Cursor getWord(String columnName, String tblName, String rowId,
            String[] columns, String condition) {
        String selection = columnName + condition ;  //condtion for selecting a value : "= ?"
        String[] selectionArgs = new String[] { rowId };

        return query(selection, tblName, selectionArgs, columns);
    }

вот шаги:

  1. Форма запроса с условием, именем столбца и именем требуемого столбца
  2. Получить курсор на результирующий запрос
  3. Перемещать курсор к следующей записи, пока cr.moveToNext () не вернет false

Для дальнейшей справки:

Завершите пошаговый пример SQLite: http://mobile.tutsplus.com/tutorials/android/android-sqlite/

Видеоурок Youtube

http://www.youtube.com/watch?v=kMaBTolOuGo

Создание нескольких таблиц http://androidforbeginners.blogspot.com/2010/01/creating-multiple-sqlite-database.html

PS: Все ссылки проверены и работают хорошо!

Счастливого кодирования !!

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