我正在尝试使用带有simpleCursorAdapter的rawQuery来显示列表视图,但它一直让我犯错误
04-29 13:36:36.453:ERROR / AndroidRuntime(29539):java.lang.RuntimeException:无法启动活动ComponentInfo {com.QuoteMachine / com.QuoteMachine.Quote}:android.database.sqlite.SQLiteException:绑定或列索引超出范围:handle 0x2f65e0
我有一个名为Quotes的表,其中列_id,auth_name,quote,category和我的查询如下所示
return qmDB.rawQuery("SELECT _id as _id, auth_name, quote, category FROM Quotes",
new String[]{"WHERE auth_name = 'Robert Anton Wilson'"});
可能有人知道修复此问题的建议吗?我原来的计划是使用基本查询语句,但是列_id存在问题,建议我采用这种方法。
答案 0 :(得分:4)
您使用rawQuery()错误。第二个变量用于参数,而不是WHERE子句。请改用:
return qmDB.rawQuery("SELECT _id as _id, auth_name, quote, category FROM Quotes WHERE auth_name = ?",
new String[] { "Robert Anton Wilson" } );
答案 1 :(得分:0)
可能与quote()函数混淆了吗?您的一个列称为“引用”。