带有“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”,则查询有效。我做错了什么
# 1 楼答案
你只有一个?而当strIdArray的大小大于1时,则提供多个参数
# 2 楼答案
这个代码片段没有解释太多,因为它使用了一些(德语)第三方库,并且隐藏了实际的查询
但是,如果相关,您可以尝试this solution
如果您可以提供有关实际查询的更多详细信息,那么就更容易提供帮助