【问题标题】:rawQuery: bind or column index out of rangerawQuery:绑定或列索引超出范围
【发布时间】:2012-10-15 06:10:43
【问题描述】:

我正在尝试用他的名字来获取用户:

public Cursor GetUser(String username)
{
    return m_dataBase.rawQuery("SELECT * FROM users WHERE name = \' ? \'", new String[] { username });
}

但后来出现异常“绑定或列索引超出范围”。我的代码有什么问题?

【问题讨论】:

    标签: android database sqlite


    【解决方案1】:

    您正在尝试使用参数,但此类参数永远不需要引用。 您的查询实际上搜索名为“?”(带空格)的用户。

    只需使用"SELECT * FROM users WHERE name = ?"

    【讨论】:

    • 所以,在查询中我需要写"SELECT * FROM users WHERE name = ?""SELECT * FROM users WHERE name = ? "(带填充空间)?
    • 符号周围的空格在 SQLite 中无关紧要,您可以使用 name=?name = ? 或介于两者之间的任何内容。这是导致问题name = '?'(错误)的单引号。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-01
    • 1970-01-01
    • 2016-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多