Android:Sqlite rawQuery超出范围

时间:2011-04-29 12:47:18

标签: android sqlite

我正在尝试使用带有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存在问题,建议我采用这种方法。

2 个答案:

答案 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()函数混淆了吗?您的一个列称为“引用”。

http://www.sqlite.org/lang_corefunc.html

http://www.sqlite.org/lang_keywords.html