Android 当我运行应用程序时,我得到一个绑定或索引列超出范围的SQL异常
DbAdapter函数:Android 当我运行应用程序时,我得到一个绑定或索引列超出范围的SQL异常,android,Android,DbAdapter函数: public boolean test(String username, String password){ boolean x; Cursor c = mDb.rawQuery("SELECT _id FROM Login WHERE Customer_Name='?' AND Password='?'", new String[] {username, password}); if(c.moveToFirst()) {
public boolean test(String username, String password){
boolean x;
Cursor c = mDb.rawQuery("SELECT _id FROM Login WHERE Customer_Name='?' AND Password='?'", new String[] {username, password});
if(c.moveToFirst()) {
x=true;
} else {
x=false;
}
return x;
}
请您提供更多的代码,其中显示了表格的创建。就我所见,上面的代码看起来不错。可能是一个不匹配的变量。错误很多可能是客户名称或密码不在登录表中的列。以及检查列名称是否存在:
删除
?
周围的单引号,它将正常工作
正确的代码应该是
Cursor c = mDb.rawQuery("SELECT _id FROM Login WHERE Customer_Name=? AND Password=?", new String[] {username, password});
我在DBHelper对象的帮助下传递值,比如布尔值x=DBHelper.test(UNAME,UPASS);这些值是我从UI.private静态最终字符串数据库的编辑框中收集的。CREATE0=“创建表登录(_idinteger primary key autoincrement,”+“Customer_Name text not null,Password text not null);”;但是身份验证没有被检查。它总是返回true。sql查询似乎很好。检查传入函数的用户名和密码的值。另外,尝试使用query而不是rawQuery方法。