Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/194.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 当我运行应用程序时,我得到一个绑定或索引列超出范围的SQL异常_Android - Fatal编程技术网

Android 当我运行应用程序时,我得到一个绑定或索引列超出范围的SQL异常

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()) {

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()) {
          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方法。