问题描述
||
到目前为止,我发现有关在iPad / iPhone应用程序中使用sqlite数据库的所有代码示例均使用脚本在应用程序部署后创建数据库。
但是,是否有可能在monotouch中创建数据库,构建结构,甚至用数据预先填充并与iPad应用程序一起部署?
如果是这样,数据库的位置在哪里,如何建立sqlite连接?
目前,我使用以下内容:
new sqliteConnection(\"Data Source=\" + DatabasePath);
哪里
public static String DatabasePath {
get {
string documents = Environment.GetFolderPath (Environment.SpecialFolder.Personal);
return Path.Combine (documents,\"MyDB.db\");
}
}
解决方法
您可以预先构建数据库,将其复制到应用程序捆绑包中,并且(只要它是只读的)就可以随时从应用程序捆绑包中直接访问它。如果您需要写访问权限,则可以将预构建文件复制到其他目录,然后从该目录进行修改。
, 对于使用Monotouch的人,这是我对此问题进行排序的方式:
使用sqliteman创建Sqlite数据库
在monodevelop中,右键单击“项目”>“添加”>“添加文件”
选择创建的sqlite数据库,然后单击“打开”
单击警告对话框上的复制
右键单击刚添加的数据库>构建操作>内容
然后,您要做的就是创建一个简单的方法来将数据库复制到目标文件夹,例如Documents:
public static void CopyDatabase(String destinationPath)
{
String path = NSBundle.MainBundle.PathForResource(\"MyDB\",\"db\");
File.Copy(path,destinationPath);
}
在我的情况下,destinationPath是问题中上面指定的路径:这里
。显然,在生产环境中,您必须具有某种机制来检查db是否不存在,以免覆盖数据库文件。
希望能帮助到你。