android - 使用登录页面
问题描述
我该如何解决这个问题
没有登录只是抛出异常(索引 -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();
}
}
解决方案
在这里,您试图从输入用户名和密码的数据库中获取记录。因此,如果您获得该记录,则表示登录成功。
无需从光标处获取用户名和密码。如果你得到一条记录,你只需要检查光标的大小就可以说用户已登录。
我假设用户名在数据库中是唯一的。
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();
}
推荐阅读
- python - Groupby nunique 与独特的分类数据
- java - Java“AWT-EventQueue-0”java.lang.NullPointerException
- macros - nom 的 "$i" 宏参数从何而来?
- elasticsearch - 使用 go 在 elasticsearch 中进行大规模更新
- java - 在 Criteria API 中按目标加入
- r - 使用函数 filter() 计算移动平均值时出现“无适用方法”错误
- vba - 以编程方式插入构建基块时出现自动化错误 Word 2016
- javascript - 手动更新 redux 状态时更改了 redux 状态引用
- sql-server - 同一张表上分组行的差异和百分比变化
- css - Angular6 - 如何根据移动设备和浏览器改变 .css 类的宽度