.rawQuery несколько? параметр - PullRequest
0 голосов
/ 14 июня 2011

Я пытаюсь использовать .rawQuery для возврата содержимого столбца в базе данных SQLite.У меня есть список, который используется для запроса базы данных и в зависимости от того, что нажимается зависит от того, что возвращается.Проблема в том, что первый элемент в списке хочет вернуть все результаты, а те, что ниже, - только определенные результаты.

Я использую следующий код:

  public Cursor getTrailByType(String id) {
     String[] args={id};

     return(getReadableDatabase()
          rawQuery("SELECT _id, NAME FROM trail WHERE TYPE_id=? OR ENT=?",
                args));
  }

TYPE_id - конкретный результатвернуть (если? между 2 и 10) и ENT - вернуть все (если? = 1; я просто добавил второй столбец ENT с номером 1 во всех строках).Таким образом, если id равен 1, он возвращает критерии ENT, но если он находится между 2 и 10, он возвращает критерии TYPE_id.

Проблема вторая?не читается и создается пустой список.Если я подставлю второе?для целого числа он работает, но не заполняет определенные списки должным образом.

Кто-нибудь может подсказать, что не так с кодом?

Ответы [ 2 ]

3 голосов
/ 14 июня 2011

попробуйте

public Cursor getTrailByType(String id, boolean needAll) {    
    String[] args = null;
    String query = "SELECT _id, NAME FROM trail";

    if(!needAll){
        query += " WHERE TYPE_id=?";
        args = new String[]{id};
    }
    return (getReadableDatabase().rawQuery(query, args));
}
0 голосов
/ 14 июня 2011

вы можете избавиться от ENT столбца и попробовать это ...

// put any id and 1 as ent to get all put id and ent=0 to get specific id
public Cursor getTrailByType(String id, int ent) {
   String[] args={id, Integer.toString(ent)}; 
   return(getReadableDatabase().
              rawQuery("SELECT _id, NAME FROM trail WHERE TYPE_id=? OR 1=?", args));
}

РЕДАКТИРОВАТЬ: хех нужно преобразовать int в строку

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