2011-06-21 84 views
6

如何快速檢查Android中是否存在數據庫?Android - SQLite數據庫存在嗎?

(不是表 - 整個數據庫)

+0

請檢查[本文檔] [1] ..它可能對您有所幫助。 [1]:http://www.reigndesign.com/blog/using-your-own-sqlite-database-in-android-applications/ – Nikhil

+0

這是非常普遍的問題。請檢查以下鏈接。我認爲這會幫助你。 http://www.itsalif.info/content/check-if-database-exist-android-sqlite3openv2-failed –

回答

5

打開數據庫並趕上這將在情況下被拋出,如果數據庫中不存在的SQLitException。請注意,您不應該撥打openOrCreateDatabase()方法。詳情請看這篇文章。 Query if Android database exists!

2

我的方法來檢查,看看你的數據庫是否存在是打開一個文件句柄,看看文件是否存在。根據我的經驗,如果db不存在,使用「openOrCreateDatabase()」函數將不會拋出錯誤。看看這個名字「打開創建數據庫」。這意味着如果沒有數據庫打開它就會創建一個新的數據庫,所以不管現在有沒有數據庫。我認爲唯一一次你會得到一個錯誤拋出是否它不能做。從那個傢伙說我不相信他們正在測試什麼,我想他希望他的程序知道db是否已經在那裏,並且如果沒有的話,不要自動創建一個空白的。 。所以由於所有數據庫都以文件形式存儲,所以該數據庫中的第一個參數是文件名。所以我認爲最好的選擇是檢查db文件是否存在,如下所示:

File dbtest = new File("/data/data/yourpackagename/databases/dbfilename"); 

//If you have Context, you could get the Database file using the following syntax 
//File dbtest = getApplicationContext().getDatabasePath("dbfilename.db"); 


if(dbtest.exists()) 
{ 
    // what to do if it does exist  
} 
else 
{ 
    // what to do if it doesn't exist 
} 
+0

必須是:if(dbtest.exist())...你的邏輯不正確 –

+0

好抓,我確實解決了。 –