Android sqlite检查表是否为空

时间:2015-02-13 11:03:05

标签: android sqlite tsql android-sqlite

我工作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();
    }

我如何检查数据库在活动中是否为空?

如果有人知道解决方案,请帮助我

4 个答案:

答案 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)//零计数表示空表。

试试这个。