2011-06-21 9 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

データベースが存在するかどうかを確認するには、ファイルハンドルを開いてファイルが存在するかどうかを確認します。私の経験から "openOrCreateDatabase()"関数は、dbが存在しない場合はエラーをスローしません。 "ORデータベースの作成"という名前を見てください。つまり、オープンするデータベースがない場合は、新しいデータベースを作成することになります。私はあなたがエラーを投げられる唯一の時間は、どちらもできない場合だと思う。その男は私が彼らがテストしようとしていると信じていないと言ったから、彼は彼のプログラムがすでに手元にあるかどうかを彼のプログラムが知りたいと思うし、 。すべてのdbはファイルとして保存されるので、そのopen databaseコマンドの最初のパラメータはファイル名です。だから私は最良の選択肢は、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

良いキャッチ、私それを修正しました。 –

関連する問題