Android 数据库 Cursor 操作问题

qq_37806415 2017-11-23 12:53:17
做了一个注册登录,注册是做好了.就是把数据存到数据库里,然后登录的界面要求判断是否用户名和密码是否存在于数据库,
下面做代码解释
//这些代码放在一个按钮的单机事件里,很简单就不贴了

//MySql是我自己新建的一个继承SQLiteOpenHelper的类,里面创建了user表
MySql mySql = new MySql(Login.this, "Data.db", null, 1);
//前面定义了一个SQLiteDatabase db;的全局变量
db = mySql.getWritableDatabase();
Cursor cursor = db.rawQuery("select * from user",null);
if (cursor.moveToFirst()) {
do {
String user = cursor.getString(cursor.getColumnIndex("user"));
String pass = cursor.getString(cursor.getColumnIndex("pass"));

if (this.user.getText().toString().equals(user) && this.pass.getText().toString().equals(pass)) {
//如果数据库里存在输入的数据,就跳转相应界面
startActivity(new Intent(A.this, B.class));
finish();
}
} while (cursor.moveToNext());
}
//前面应该是没错的,这里我的想法是,游标没有下一个的时候,此时游标应该是最后一个,所以我加了一个这样的判断
//可是此时的游标不是最后一个,这我就很纳闷了
if (cursor.isLast()) {
alert();
}

大神们讲解讲解,此时怎么做才好,感谢感谢
...全文
158 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
MadFrogs 2017-11-25
  • 打赏
  • 举报
回复
查看Cursor.java: boolean moveToFirst(): Move the cursor to the first row.This method will return false if the cursor is empty. boolean moveToLast(): Move the cursor to the next row. This method will return false if the cursor is already past the last entry in the result set. 这不说的很明白么。
跋涉者901214 2017-11-23
  • 打赏
  • 举报
回复
if (!cursor.moveToNext()) { alert(); }

80,359

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧