2011-07-28 67 views
0

enter image description here 我創建使用sqliteadmin(0.8.3.2版本)我的數據庫,我這個文件放到我的資產目錄,然後將此文件複製到data/data/mypackage/databases/mydb,其當我試圖打開這個文件ok.now得到異常爲android.database.sqlite.SQLiteException: unable to open database file,下面的代碼我用來打開mydb。SQlite的無法打開

private static final String DB_PATH = "/data/data/src.com/databases/"; 
private static final String DB_NAME = "mydb"; 
String mypath = DB_PATH + DB_NAME; 

try{ 
dbBF = SQLiteDatabase.openDatabase(mypath, null, SQLiteDatabase.OPEN_READWRITE); 

}catch(Exception ex) 

{System.out.print("H![enter image description here][1]ere is an Exception"+ex); 
}  
Cursor cur = dbBF.rawQuery("SELECT * FROM"+"myTable" , null); 
+0

向我們展示代碼如何打開數據庫? –

+0

我編輯我的上述帖子,添加方法來打開SQLite ... – aftab

+0

該文件需要.db擴展名? –

回答

0

你的方法似乎是正確的。你的數據庫文件是否有擴展名?像mydb.db一樣。如果你這樣做,你應該添加它的文件的完整名稱。

+0

thansk,我的SQLite文件沒有任何擴展名,當我從資產目錄複製到數據目錄時,我也沒有把任何擴展名.. – aftab

+0

它被複制到該目錄中嗎?在你的'DDMS透視圖'中的'File Explorer'中檢查它 –

+0

我插件我的設備,我在DDMS視圖中運行我的模擬器,我運行我的代碼,並且我看到我的數據庫文件存在於data/data/package/databases/mydb目錄中... – aftab

0

我有同樣的問題。首先請注意,你的數據庫文件不應該大於1.2MB,如果是,則嘗試分割它。其次,代替以下行,

DBAdapter db = new DBAdapter(this); 
db.openDataBase(); //Bad! db not created yet! 

嘗試使用

DBAdapter db = new DBAdapter(this); 
db.createDataBase(); //needs exception handling 
db.openDataBase(); 

我複製它從How does android access a sqlite database included in the assets folder。無論如何,它適用於我。如有任何問題,請告訴我。