在我的Android应用程序中,我插入并显示来自SQLite数据库的数据。在此之前,我想检查数据库是否可用。也就是说,我想检查表是否可用。如果可用,我还想检查它是否为空。这是伪代码
if (DB available) {
if (table available) {
if (table != empty) {
insertdata()
}
}
}
答案 0 :(得分:0)
通常在Android中,如果您的数据库可用,则无需明确检查 。流程是您尝试获取数据库实例(处于读取或写入模式),如果数据库不存在,则执行onCreate()过程,该过程应首次执行DDL语句并创建数据库。在您的DDL语句中,您可以使用:
create table if not exists TABLE_NAME
这将保证您在查询之前存在TABLE_NAME。
您可以使用SQLiteOpenHelper
对象上调用的getWritableDatabase()
。如果数据库出现问题,它将抛出SQLiteException。
查看official documentation了解详情。
答案 1 :(得分:0)
通常,您不需要检查数据库是否存在,除非您的代码行为将根据数据库本身是否是新的而改变。在您的情况下,即使数据库不是新的,您仍然希望检查表的内容。如果您在没有传递SQLiteDatabase.openDatabase()
的情况下调用CREATE_IF_NECESSARY
,则会引发异常。但是,通常情况下,您只需拨打SQLiteDatabase.openOrCreateDatabase()
。之后,你会检查表格。
您可以使用语句SELECT count(*) FROM sqlite_master WHERE name='<tablename>' AND type='table';