首页 > 解决方案 > 使用登录页面

问题描述

我该如何解决这个问题

没有登录只是抛出异常(索引 -1 请求大小为 0)

String sql="select * from beta where uname='"+unam+"' and pwd='"+pwd+"'";
cur=db.rawQuery(sql,null);
if(cur.moveToFirst()) {
    String nm = cur.getString(cur.getColumnIndex("uname"));
    String pd = cur.getString(cur.getColumnIndex("pwd"));
    if ((nm.equals(unam)) && (pd.equals(pwd))) {
        Toast.makeText(Login.this, "Login Succesfully", Toast.LENGTH_LONG).show();
    } else {
        Toast.makeText(Login.this, "Login NOT Succesfully", Toast.LENGTH_LONG).show();
    }
}

标签: androidsqliteandroid-sqlite

解决方案


在这里,您试图从输入用户名和密码的数据库中获取记录。因此,如果您获得该记录,则表示登录成功。

无需从光标处获取用户名和密码。如果你得到一条记录,你只需要检查光标的大小就可以说用户已登录。

我假设用户名在数据库中是唯一的。

String sql="select * from beta where uname='"+unam+"' and pwd='"+pwd+"'";
cur=db.rawQuery(sql,null);
if(cur != null && cur.getCount() > 0) {
        Toast.makeText(Login.this, "Login Succesfully", Toast.LENGTH_LONG).show();
    } else {
        Toast.makeText(Login.this, "Login NOT Succesfully", Toast.LENGTH_LONG).show();
}

推荐阅读