我工作sqlite.i想检查表是否为空。我写了一些代码,但我的代码不能正常工作 这是我的DatabaseHelper代码(函数)
public boolean CheckGenderTableEmpty() {
boolean isEmpty = false;
String count = "SELECT * FROM Gender";
Cursor mcursor = db.rawQuery(count, null);
mcursor.moveToFirst();
if (mcursor.getCount() != 0) {
if (!mcursor.isClosed())
{
mcursor.close();
Log.e("is not empty", "is not empty");
isEmpty=true;
}
} else {
if (!mcursor.isClosed())
{
mcursor.close();
Log.e(" empty", "empty");
isEmpty=false;
}
}
return isEmpty;
}
因为我说我的代码不能正常工作。第一次我的表是空的,我不能显示关于空的日志消息 我打电话给我这样的功能活动..
if(db_helper.CheckGenderTableEmpty()==true)
{
Toast.makeText(getApplicationContext(), "is not empty", Toast.LENGTH_SHORT).show();
}
else
{
Toast.makeText(getApplicationContext(), "empty", Toast.LENGTH_SHORT).show();
}
我如何检查数据库在活动中是否为空?
如果有人知道解决方案,请帮助我
答案 0 :(得分:1)
使用getCount()
的{{1}}方法:
Cursor
答案 1 :(得分:1)
Android框架在helper function类中有DatabaseUtils:
public boolean CheckGenderTableEmpty() {
return DatabaseUtils.queryNumEntries(db, "Gender") == 0;
}
答案 2 :(得分:0)
你可以选择像
这样的东西SQLiteDatabase db = table.getWritableDatabase();
String count = "SELECT count(*) FROM Gender";
Cursor mcursor = db.rawQuery(count, null);
mcursor.moveToFirst();
int icount = mcursor.getInt(0);
if(icount>0)
//do accordingly
else
//do accordingly
答案 3 :(得分:-1)
cursor.moveToFirst(); //总是返回一行。
然后检查cursor.getInt(0)== 0
if(cursor.getInt(0)== 0)//零计数表示空表。
试试这个。