android查找数据库中是否有记录

在sqlite中查找是否有学号为123的记录,如果没有的话下面怎么来判断
Cursor result = db.rawQuery("SELECT 学号 FROM grade WHERE 学号 = 123", null);

if(???){
Toast.makeText(TheacherView.this, "学号不存在", Toast.LENGTH_SHORT).show();
大家看看,问号这里该写啥。

4个回答

用select count(*)from table where...

执行查询,都会返回一个 Cursor,这是 Android 的 SQLite 数据库游标,使用游标,你可以:

通过使用 getCount() 方法得到结果集中有多少记录;

通过 moveToFirst(), moveToNext(), 和 isAfterLast() 方法遍历所有记录;

通过 getColumnNames() 得到字段名;

通过 getColumnIndex() 转换成字段号;

通过 getString(),getInt() 等方法得到给定字段当前记录的值;

通过 requery() 方法重新执行查询得到游标;

通过 close() 方法释放游标资源;

例如,下面代码遍历 mytable 表

 Cursor result=db.rawQuery("SELECT ID, name, inventory FROM mytable"); 
    result.moveToFirst(); 
    while (!result.isAfterLast()) { 
        int id=result.getInt(0); 
        String name=result.getString(1); 
        int inventory=result.getInt(2); 
        // do something useful with these 
        result.moveToNext(); 
      } 
      result.close(); 
u014360189
四瓣纸鹤 回复danielinbiti: 嗯,我也觉得
4 年多之前 回复
oyljerry
oyljerry 回复danielinbiti: 嗯,太假了
4 年多之前 回复
danielinbiti
danielinbiti 回复四瓣纸鹤: 那你采纳的答案让人看不懂呀
4 年多之前 回复
u014360189
四瓣纸鹤 嗯 谢谢了 问题解决了 用cursor.getCount()==0来判断
4 年多之前 回复

cursor.moveToNext()返回一个boolean类型的值。可以通过while循环遍历cursor中的数据,没有的话,用cursor == null来判断就可以了吧

u014360189
四瓣纸鹤 cursor==null判断不出来,用 cursor.getCount()==0来判断,如果没有的话记录为0条。
4 年多之前 回复

if(!moveToNext())

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!