安卓 SQLITE 如何检查表中是否有数据?

3
我想检查我的表是否有记录。这是我尝试过的方法:
if( cursor != null ){
        cursor.moveToFirst();
        if (cursor.getInt(0) == 0) {
        Toast.makeText(getBaseContext(), "No records yet!", Toast.LENGTH_SHORT).show();
        }
    }

Logcat 信息如下:
  CursorIndexOutOfBoundsException: Index 0 requested, with a size of 0

非常感谢您的帮助。谢谢。


1
测试 moveToFirst 的结果,或者 cursor.getCount(即您的游标中有多少条记录)。 - njzk2
4个回答

1
尝试这个。
cursor.getCount();

它会返回光标检索到的数据计数,如果返回值为0,则表示没有数据。

因此,

if(cursor != null && cursor.getCount()>0){
   cursor.moveToFirst();
   //do your action
   //Fetch your data

}
else {
 Toast.makeText(getBaseContext(), "No records yet!", Toast.LENGTH_SHORT).show();
    return;
}  

注意:即使您检查了if(cursor!= null),在执行任何查询后,游标也不会返回null值,因此请使用此方法来检查游标中的数据计数。

0
if(cursor.moveToFirst()){
//do your work
}
else{
 Toast.makeText(getBaseContext(), "No records yet!", Toast.LENGTH_SHORT).show();
}

0

Cursor.getCount()会在结果集为空时返回0。


0

我认为你正在寻找方法getCount()

只需检查cursor.getCount()==0以获取空结果。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接