带有'WHERE'选择参数的Android SQLite查询不起作用

时间:2012-01-15 12:10:20

标签: java android sqlite

我有这段代码:

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:绑定或列索引超出范围:handle 0x3fd490

我尝试了几种组合,结果始终保持不变。如果strIdArray的大小为“1”,则查询有效。我在这里做错了什么?

2 个答案:

答案 0 :(得分:1)

  

如果strIdArray的大小为“1”,则查询有效。我在做什么   这里错了吗?

你只有一个?当strIdArray的大小大于1时,你提供了几个参数。

答案 1 :(得分:0)

此代码片段没有解释太多,因为它使用了一些(德语)第三方库,它隐藏了实际的查询。

但是,如果相关,您可以尝试this solution

如果您可以提供有关实际查询的更多详细信息,那么帮助会更容易。