SQLITE Выбор и порядок, вызывая ошибки - PullRequest
0 голосов
/ 31 июля 2010

Я пытаюсь получить запрос, который возвращает строки только с указанным именем, и сортировать по убыванию по неделям (целое число).

Каждый раз, когда я пытаюсь запустить его, он дает мне FC и logcat говорит

ОШИБКА / AndroidRuntime (728): android.database.sqlite.SQLiteException: такого столбца нет: New: при компиляции: SELECT Name, Week, Total FROM notes WHERE Name = Новый ORDER BY WeekDESC LIMIT 10

    public Cursor graphQuery(String name){
    return mDb.query(DATABASE_TABLE, new String[] {KEY_NAME,
            KEY_WEEK, KEY_TOTAL}, KEY_NAME + "=" + name, null, null, null, KEY_WEEK + "DESC","10");
}

В нем говорится, что такого столбца нет, что не имеет смысла, поскольку он должен искать имена в строке и возвращать совпадающие. Также, если я добавлю KEY_NAME + "=" + name в значение null, это говорит о том, что не существует такого столбца WeekDESC, который также не имеет смысла, поскольку предполагается, что он просто сортируется по целому числу.

Я уже работал с этим кодом, но я потерял его и не могу заставить его работать снова ... Это расстраивает, любая помощь очень ценится!

1 Ответ

0 голосов
/ 31 июля 2010

При поиске по строке следует использовать вопросительный знак в качестве заполнителя, т. Е.

return mDb.query(DATABASE_TABLE, new String[] {KEY_NAME,
            KEY_WEEK, KEY_TOTAL}, KEY_NAME + "=?", new String[] { name }, null, null, null, KEY_WEEK + "DESC","10");

Или же оно сломается, если имя содержит пробелы или специальные символы. (Если вы действительно не хотите ставить вопросительный знак, вам нужно поместить строку в кавычки или двойные кавычки, но использование вопросительного знака гораздо более элегантно и безопасно.)

Также: между "DESC" и ключом, по которому вы сортируете, нет пробела. Используйте "DESC".

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