【发布时间】:2012-10-15 06:10:43
【问题描述】:
我正在尝试用他的名字来获取用户:
public Cursor GetUser(String username)
{
return m_dataBase.rawQuery("SELECT * FROM users WHERE name = \' ? \'", new String[] { username });
}
但后来出现异常“绑定或列索引超出范围”。我的代码有什么问题?
【问题讨论】:
我正在尝试用他的名字来获取用户:
public Cursor GetUser(String username)
{
return m_dataBase.rawQuery("SELECT * FROM users WHERE name = \' ? \'", new String[] { username });
}
但后来出现异常“绑定或列索引超出范围”。我的代码有什么问题?
【问题讨论】:
您正在尝试使用参数,但此类参数永远不需要引用。
您的查询实际上搜索名为“?”(带空格)的用户。
只需使用"SELECT * FROM users WHERE name = ?"。
【讨论】:
"SELECT * FROM users WHERE name = ?" 或"SELECT * FROM users WHERE name = ? "(带填充空间)?
name=?、name = ? 或介于两者之间的任何内容。这是导致问题name = '?'(错误)的单引号。