Вопрос:

Запрос Sqlite, отображающий только данные последнего столбца

android sqlite

171 просмотра

3 ответа

5 Репутация автора

У меня есть база данных sqlite, из которой я хочу показать данные в группах. Но sqlite показывает только данные последнего столбца. Мой код выглядит следующим образом:

        String q="Select * from events";

        Cursor m = eventsDB.rawQuery(q, null);


            if(m.moveToFirst() )
                while(m.moveToNext()){
            {
            String curevent = m.getString(m.getColumnIndex("name"));
            String curdate = m.getString(m.getColumnIndex("date"));

            evname.setText(curevent);
            }

            }
            else {
                evname.setText("Not found");


            }

как я могу отобразить все данные?

Автор: Rahi M. Источник Размещён: 14.09.2013 07:01

Ответы (3)


0 плюса

10988 Репутация автора

Это то, что вы говорите Android сделать. Вы перебираете все строки Cursorи одновременно устанавливаете текст; последний - тот, который он собирается показать, так как это последний ряд вCursor

Автор: Emmanuel Размещён: 14.09.2013 07:25

0 плюса

3668 Репутация автора

как я могу отобразить все данные?

Используйте этот метод, чтобы получить все данные из вашей таблицы

public String getAllData() {
    String[] columns = new String[] { name, date };
    Cursor c = ourDatabase.query(table_name, columns, null, null, null,
            null, null);
    String someresult = "";
    int iName = c.getColumnIndex(name);
    int iDate = c.getColumnIndex(date);

    for (c.moveToFirst(); !c.isAfterLast(); c.moveToNext()) {
        someresult += c.getString(iName ) + "\n" + c.getString(iDate )
                + "\n";
    }

    return someresult;
}

где name и date - это имена ваших столбцов, а ourDatabaseтакже экземпляр SQLiteDatabaseкласса.

Если у вас есть больше столбцов, добавьте имена столбцов в массив String, затем извлекайте все индексы и извлекайте все данные через getString ().

Автор: Ranjit Размещён: 14.09.2013 07:25

0 плюса

1619 Репутация автора

Решение

Сделайте это, если хотите установить все имена в одно текстовое представление.

  String q="Select * from events";

    Cursor m = eventsDB.rawQuery(q, null);
        String allnames="";
         String abc[]={"","","","","","","","","","","","","","",""};
        int q=0
        if(m.moveToFirst() )
            while(m.moveToNext()){
        {
        String curevent = m.getString(m.getColumnIndex("name"));
        String curdate = m.getString(m.getColumnIndex("date"));

        abc[q]=curevent;

        allnames=allnames+abc[q];
        evname.setText(allnames);
        q++
        }

        }
        else {
            evname.setText("Not found");


        }
Автор: Metalhead1247 Размещён: 14.09.2013 07:57
Вопросы из категории :
32x32