我启动Xamarin Studio 4.0.3并为MonoDroid应用程序创建一个新的解决方案。我的目标是2.3或更高版本。我在sqlite-net(最新的站点)项目中包含了Sqlite.cs。我确保在项目中引用了Mono.Data.SQLite。然后在默认MainActivity的OnCreate中,我尝试使用自述文件中显示的代码建立数据库连接:
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以查看是否存在问题。
答案 0 :(得分:1)
我刚发现显然你应该使用个人文件夹,而不是数据库文件夹:
string folder = System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal);
var db = new SQLiteConnection(Path.Combine(folder, "mydb.db"));