有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

带有“WHERE”选择参数的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): 安卓.database.sqlite.SQLiteException: bind or column index out of range: handle 0x3fd490

我试过几种组合,结果总是一样的。如果strIdArray的大小为“1”,则查询有效。我做错了什么


共 (2) 个答案

  1. # 1 楼答案

    If the size of the strIdArray is '1' the query works. What am I doing wrong here?

    你只有一个?而当strIdArray的大小大于1时,则提供多个参数

  2. # 2 楼答案

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

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

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