Как получить значения для списка или таблицы из базы данных в Android? - PullRequest
0 голосов
/ 12 ноября 2011

У меня есть база данных с именем wisherDB, и внутри базы данных есть таблица с именем tbltasks.

В таблице просто есть названия столбцов id, title, name, date, time и type. Я хочу получить идентификатор, имя и время для привязки к текущей дате, и я могу получить доступ к текущей дате с помощью класса Calendar, так что это не проблема.

Код выбора находится в отдельном классе с именем DataAccess, а код указан ниже.

Что я хочу сделать, так это получить детали запроса и отобразить их в виде таблицы. Я попытался это без выбора даты [где пункт] [это означает, что выберите * из ...], который работает для этого.

Но при выборе данные не отображаются.

Класс DatabaseAccess Выбор запроса:

public Cursor getTasktoDate(String Date) throws SQLException
{
    Cursor mCursor=db.query(true, DATABASE_TABLE, new String[] {KEY_ROWID,KEY_TASKNAME,KEY_TASKTYPE}, KEY_TASKDATE+"="+ Date, null, null, null, null, null);
    if(mCursor!=null)
    {
        mCursor.moveToFirst();
    }
    return mCursor;
}

А это код активности:

    Cursor c=dba.getTasktoDate("2011/10/12");
    if (c.moveToFirst())
    {
      do {
        DisplayContact(c, tltodaytask);
      } while (c.moveToNext());
    }
    dba.Close();
}

private void DisplayContact(Cursor c, TableLayout tltodaytask) {
    // TODO Auto-generated method stub
    String id=c.getString(0);
    String tName=c.getString(1);
    String tType=c.getString(2);
    insertRow(tltodaytask,id,tName,tType);
}

private void insertRow(TableLayout tltodaytask, String id, String tName,
        String tType) {
    // TODO Auto-generated method stub
    final TableRow newrow = new TableRow(this);

    addTexttoRowswithValues(newrow, id);
    addTexttoRowswithValues(newrow, tName);
    addTexttoRowswithValues(newrow, tType);
    tltodaytask.addView(newrow);
}

private void addTexttoRowswithValues(TableRow newrow, String text) {
    // TODO Auto-generated method stub
    TextView textview = new TextView(this);
    textview.setWidth(115);
    textview.setText(text);
    newrow.addView(textview);
}

Этот метод не работает.

1 Ответ

2 голосов
/ 12 ноября 2011

У вас проблема в

Cursor mCursor=db.query(true, DATABASE_TABLE, 
        new String[] {KEY_ROWID,KEY_TASKNAME,KEY_TASKTYPE}, 
        KEY_TASKDATE+"="+ Date, null, null, null, null, null);

Вы должны использовать

Cursor mCursor=db.query(true, DATABASE_TABLE, 
        new String[] {KEY_ROWID,KEY_TASKNAME,KEY_TASKTYPE}, 
        KEY_TASKDATE+"= ?", new String[]{Date}, null, null, null, null);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...