Запрос SQLite для Android с аргументами выбора «ГДЕ» не работает - PullRequest
0 голосов
/ 15 января 2012

У меня есть этот код:

if (idListe.size()>0)
        {
        strIdArray = new String[idListe.size()];
        idListe.toArray(strIdArray);
//my query starts here
        c = dbHelper.query(true, DataBaseHelper.DB_COURSE,
                dbHelper.COURSE_TABLE_AUFGABEN, new String[] {
                dbHelper.COURSE_AUFGABEN_COLUMN_ID,
                dbHelper.COURSE_AUFGABEN_COLUMN_ADRESSID,
                dbHelper.COURSE_AUFGABEN_COLUMN_KURSART }, dbHelper.COURSE_AUFGABEN_COLUMN_ID + " = ?",strIdArray,
                dbHelper.COURSE_AUFGABEN_COLUMN_KURSART, null,
                dbHelper.COURSE_AUFGABEN_COLUMN_KURSART + " ASC", null);
        startManagingCursor(c);
        }

И получите эту ошибку:

01-15 13: 01: 27.489: E / AndroidRuntime (703): android.database.sqlite.SQLiteException: привязка или индекс столбца вне диапазона: дескриптор 0x3fd490

Я пробовал несколько комбинаций, и результат всегда остается неизменным. Если размер strIdArray равен '1', запрос работает. Что я тут не так делаю?

Ответы [ 2 ]

1 голос
/ 15 января 2012

Если размер strIdArray равен '1', запрос работает. Что я делаю здесь не так?

У тебя только один? в то время как вы предоставляете несколько параметров, когда размер strIdArray больше единицы.

0 голосов
/ 15 января 2012

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

Однако вы можете попробовать это решение , если это уместно.

Было бы проще помочь, если бы вы могли предоставить более подробную информацию о реальном запросе.

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