带有 Sqlite 的 Android - 如何检查表是否存在以及是否为空

标签 android sqlite android-studio alert

如果表格不存在或表格内容为空,我想显示一个警告框。

要检查表是否为空,我正在使用:

        cCheckDB = db.rawQuery("SELECT COUNT(*) FROM " + MainActivity.TABLE_NAME +"", null);

        if (cCheckDB != null) {
            cCheckDB.moveToFirst();

            if (cCheckDB.getInt (0) == 0) {
                // EMPTY
            }
        }

但是如何将其包装在“如果表存在”中?什么是最好的方法?

我知道检查表是否存在或检查表中是否有内容的两种方法。但我想以一种有意义的方式使用检查,而不是在可能的情况下使用单个查询 - 这是我的问题。

最佳答案

希望对你有所帮助。 运行良好!!!

public boolean isTableExists(String tableName, boolean openDb) {
    if(openDb) {
        if(mDatabase == null || !mDatabase.isOpen()) {
            mDatabase = getReadableDatabase();
        }

        if(!mDatabase.isReadOnly()) {
            mDatabase.close();
            mDatabase = getReadableDatabase();
        }
    }

    Cursor cursor = mDatabase.rawQuery("select DISTINCT tbl_name from sqlite_master where tbl_name = '"+tableName+"'", null);
    if(cursor!=null) {
        if(cursor.getCount()>0) {
                            cursor.close();
            return true;
        }
                    cursor.close();
    }
    return false;
}

关于带有 Sqlite 的 Android - 如何检查表是否存在以及是否为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37268663/

相关文章:

android - Quickblox Android SDK : Login with facebook token issue

java ,正确使用静态变量来防止死锁——同步

sqlite - 将时间差异显示为 HH :MM:SS between two datetimes in SQLite

java - Android 中的录制/播放手势

安卓市场

android - 无法降级 Android Gradle 插件版本

ubuntu - Android Studio 无法在 Ubuntu 上运行

android-studio - Android Studio中的重新启动选项在哪里?

sqlite - NHibernate - 一对多只是不使用 SQLite

c# - System.Data.SQLite 有多稳定