Приложение получает Force Close при выполнении запроса SQL - PullRequest
0 голосов
/ 15 декабря 2010

Я добавил пробел после «ГДЕ» в своем SQL-запросе, основываясь на рекомендации в моем предыдущем вопросе .
Однако теперь мое приложение получает «Force Close».

Cursor c = db.rawQuery("SELECT * FROM  sharelist  WHERE " + "category" + "=" + category,null);

Ответы [ 2 ]

1 голос
/ 15 декабря 2010

Вы должны создать запрос, подобный этому:

Cursor c = db.rawQuery("SELECT * FROM  sharelist  WHERE category=?", 
                       new String[] {category});

Это сделает правильное цитирование и избавит вас от атак SQL-инъекций.

Кроме того, всякий раз, когда вы видите Force Close, возникает необработанное исключение, связанное с ним. Вы можете увидеть это в LogCat (это доступно в перспективе Debug Eclipse). Тип и сообщение об Исключении являются бесценной информацией для устранения ошибки.

0 голосов
/ 15 декабря 2010

Вы должны выполнить запрос в соответствии с предложением kgiannakakis.

Для решения вашей проблемы вы должны заключить в значение category одинарные кавычки, например:

Cursor c = db.rawQuery( "SELECT * FROM  sharelist  WHERE "  + "category" + "='" + category + "'",null);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...