Android 如何检查数据库是否存在

标签 android database

我想检查数据库是否存在,并且我从互联网上找到了一些代码。

     private boolean checkDataBase(){

        SQLiteDatabase checkDB = null;

        try{
            String myPath = DB_PATH + DB_NAME;
            checkDB = SQLiteDatabase.openDatabase(myPath, null,SQLiteDatabase.OPEN_READONLY);

        }catch(SQLiteException e){

            //database does't exist yet.

        }

        if(checkDB != null){

            checkDB.close();

        }

        return checkDB != null ? true : false;
    }

但我收到错误..无法打开文件 为什么它不能工作?

: sqlite returned: error code = 14, msg = cannot open file at line 27703 of [8609a15dfa], db=/data/data/com.testing.abcde/databases/scj
: sqlite returned: error code = 14, msg = os_unix.c: open() at line 27703 - "" errno=2 path=/data/data/com.testing.abcde/databases/scj, db=/data/data/com.testing.abcde/databases/scj
: sqlite3_open_v2("/data/data/com.testing.abcde/databases/scj", &handle, 1, NULL) failed
: Failed to open the database. closing it.
: android.database.sqlite.SQLiteCantOpenDatabaseException: unable to open database file
:   at android.database.sqlite.SQLiteDatabase.dbopen(Native Method)
:   at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:1013)
:   at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:986)
:   at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:962)
:   at com.lkland.softkeyboard.easytype.SQLite.checkDataBase(SQLite.java:80)
:   at com.lkland.softkeyboard.easytype.SQLite.createDataBase(SQLite.java:55)

最佳答案

我使用这个代码,看起来效果很好:

// Where DB_PATH is /data/data/com.testing.abcde/databases/scj
// and DB_NAME is name.db
public boolean checkDBExists() {
     File dbFile = new File(DB_PATH + DB_NAME);
     return dbFile.exists();
}

您将需要import java.io.File;或提供对File类的完整引用。

关于Android 如何检查数据库是否存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11657215/

相关文章:

php - 使用 Auth::user() 填充表单

android - changeCursor 导致 CalledFromWrongThreadException 异常......但只有一次

android - Android上如何正确读取AsyncStorage

node.js - NodeJS 存储基于文件的 JSON 数据库的最佳方式?

php - 外键防止删除mysql中的数据

MySql 根据其他字段更新字段

android - 如何在 Eclipse 中使用 HoloEverywhere 主题?

android - 什么时候使用Android fragment ?

android - 如何为长文本添加弹出窗口 Android

php - Mysql 行返回数组中的最后一个值,但我期望整行