2013-04-30 79 views
0

我啓動Xamarin Studio 4.0.3併爲MonoDroid應用程序創建一個新的解決方案。我的目標是2.3或更高版本。我從sqlite-net(最新從站點)項目中包含Sqlite.cs。我確信我在項目中引用了Mono.Data.SQLite。然後,在默認的MainActivity的OnCreate我嘗試使用自述所示的代碼,以使一個數據庫連接:sqlite-net無法在MonoDroid應用程序中創建數據庫

string path = Android.OS.Environment.DataDirectory.ToString(); 

string dbname = path + "/" + "test.db3"; 
var db = new SQLiteConnection(dbname, SQLiteOpenFlags.Create|SQLiteOpenFlags.ReadWrite ,true); 

但是它總是失敗,一個異常說,它不能打開數據庫。如果我按照Greg Shackles的例子,並使用SqliteDbHelper方法,它的工作原理,但我想知道我做錯了,sqlite-net連接方法不起作用。我有一種感覺,我錯過了一些簡單的東西。我也嘗試將文件名傳遞給SQLiteConnection(),但是當它失敗時,我添加了OpenFlags以查看是否是這個問題。

回答

1

我只是發現了,顯然你應該使用個人文件夾,而不是數據庫文件夾:

string folder = System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal); 
var db = new SQLiteConnection(Path.Combine(folder, "mydb.db")); 
+0

唉我想這是簡單的東西,果然就是這樣。然而,這是網站上的第一個回答。我甚至在幾個郵件列表中發現了這個問題。謝謝你的回答。 – csystems 2013-05-26 08:11:55

+0

我使用個人文件夾時遇到的問題是,每次更新應用程序時,先前的數據庫都會被刪除,從而導致所有數據丟失。將其存儲在SD卡上似乎是更現實的解決方案,因爲我認爲用戶不希望在升級過程中不得不重新輸入數據。除非有辦法阻止數據庫從Personal中刪除,否則請告訴我。 – Dominique 2014-08-08 11:42:37

相關問題