2014-09-30 2 views
0

У меня есть следующий запрос:Нет такой стол, когда таблица явно есть - SQ-Lite

cursor = helper.getReadableDatabase().rawQuery("select _id, Likert-Skala from "+inAd+" where Name like ?" , 
      new String[] { "%" + str2 + "%" }); 

Теперь, я получаю ошибку «нет такой таблицы» для Лайкерта-Скале. Однако, если я делаю это:

Cursor c = helper.getReadableDatabase().rawQuery("SELECT * FROM "+inAd+" ", null); 
    DatabaseUtils.dumpCursor(c); 

Тогда мой результат, например:

09-30 18:42:11.212: I/System.out(907): Likert-Skala=1.63 

Так таблица явно там, и там нет опечатки. У кого-нибудь есть идея?

+2

Я думаю, что проблема заключается в том, что в названии вашего столбца есть дефис, который SQLite, вероятно, интерпретирует как вычитание между двумя другими терминами. – Karakuri

+0

Если это так, то почему сообщение об ошибке: «Нет такой колонки: Likert Skala»? и когда я прошу всех столбцов, «Ликерт-Скала» выходит хорошо? – newnewbie

+0

Я думаю, что вы передаете неправильную строку, это должно быть: «SELECT _id FROM Likert-Skala» + inAd + «ГДЕ ИСПОЛЬЗОВАТЬ?» – Juniar

ответ

1

Возможно, вам придется покончить с знаком «-». В противном случае это должно быть хорошо:

String sql = "SELECT _id FROM Likert-Skala WHERE Name like ?"; 
String[] str = {"%" + str2 + "%"}; 
Cursor cursor = this.helper.getReadableDatabase().rawQuery(sql, str); 
+0

Каракури был на первом месте. – newnewbie

+0

@newnewbie Я понял, что Likert_Skala действует с знаком «_» или [Likert-Skala] действует с «[..]» скобками. Вот ссылка: http://stackoverflow.com/questions/3694276/what-are-valid-table-names-in-sqlite – Juniar

Смежные вопросы