如何将现有数据库文件添加到我的Windows Phone 7应用程序并从中读取数据?

时间:2012-03-29 09:31:37

标签: windows-phone-7

如何添加现有数据库文件说(例如: - x.sdf)并将数据库文件中存在的数据转储到手机的本地数据库中?

我希望在最终用户自己安装应用时执行此操作。

2 个答案:

答案 0 :(得分:1)

检查"应用程序部署" this条的一部分;在那里,您将了解如何使用您的应用程序部署只读数据库,以及为了使其在部署后可写入,您需要做些什么!

答案 1 :(得分:0)

如果需要预先加载的数据库,则可以在应用程序中添加sqlCe DB,并使用种子数据填充数据库。  然后,您可以在调用DBContext的构造函数时将DB文件复制到ISO Store。

public Moviadb1DataContext (string connectionString) : base(connectionString)
    {
        IsolatedStorageFile iso = IsolatedStorageFile.GetUserStoreForApplication();

        if (!iso.FileExists("Moviadb1.sdf"))
        {
            MoveReferenceDatabase();
        }

        if (!DatabaseExists())
            CreateDatabase();
    }

    public static void MoveReferenceDatabase()
    {
        // Obtain the virtual store for the application.
        IsolatedStorageFile iso = IsolatedStorageFile.GetUserStoreForApplication();

        // Create a stream for the file in the installation folder.
        using (Stream input = Application.GetResourceStream(new Uri("Moviadb1.sdf", UriKind.Relative)).Stream)
        {
            // Create a stream for the new file in isolated storage.

            using (IsolatedStorageFileStream output = iso.CreateFile("Moviadb1.sdf"))
            {
                // Initialize the buffer.
                byte[] readBuffer = new byte[4096];
                int bytesRead = -1;

                // Copy the file from the installation folder to isolated storage. 
                while ((bytesRead = input.Read(readBuffer, 0, readBuffer.Length)) > 0)
                {
                    output.Write(readBuffer, 0, bytesRead);
                }
            }
        }
    }