Monotouch-将Sqlite数据库附加到monotouch项目中并部署到iPad

问题描述

|| 到目前为止,我发现有关在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是否不存在,以免覆盖数据库文件。 希望能帮助到你。