导出 (0) 打印
全部展开
信息
您所需的主题如下所示。但此主题未包含在此库中。

如何使用 Windows Phone 8 应用部署参考数据库

2014/6/18

适用于:Windows Phone 8 和 Windows Phone Silverlight 8.1 | Windows Phone OS 7.1

从 Windows Phone OS 7.1 开始,您可以在本地数据库中存储引用数据,并通过 Windows Phone 应用对其进行部署。在设备上安装应用后,您可以将引用数据库保留在安装文件夹中进行只读连接,或将其复制到本地文件夹中进行读写操作。本主题介绍如何创建引用数据库并将其用于应用中。有关使用本地数据库的更多信息,请参见 Windows Phone 8 本地数据库

重要说明重要说明:

在桌面上创建的 Microsoft SQL Server Compact (SQL CE) 数据库可以与 Windows Phone 应用一起使用,但未得到正式支持。

本主题包括以下部分。

创建将通过主应用部署的本地数据库需要使用帮助器应用。帮助器应用在您的开发计算机上运行、在本地文件夹中创建本地数据库,并为数据库加载所需的引用数据。

在本节中,将创建帮助器应用,使用帮助器应用创建引用数据库,然后使用独立存储资源管理器 (ISETool.exe) 提取本地数据库文件并将其保存到您的计算机。有关独立存储资源管理器的更多信息,请参见如何使用 Windows Phone 8 的独立存储资源管理器工具

创建引用数据库

  1. 创建用来创建本地数据库并使用引用数据加载该数据库的帮助器应用。有关更多信息,请参见如何为 Windows Phone 8 创建基本的本地数据库应用如何使用 MVVM 为 Windows Phone 8 创建本地数据库应用

  2. 将帮助器应用部署到 Windows Phone 模拟器或 Windows Phone 设备。

  3. 运行用来创建本地数据库并使用引用数据加载该数据库的相应帮助器应用。在本地文件夹中创建所有本地数据库。

  4. 获取应用的 Product GUID,它在 WMAppManifest.xml 文件的 App 元素的 ProductID 属性中指定。当您从本地文件夹复制本地数据库文件时将需要该信息。

  5. 当连接的设备或模拟器仍然运行时,使用独立存储资源管理器将本地数据库复制到您的计算机。有关更多信息,请参见如何使用 Windows Phone 8 的独立存储资源管理器工具

在您将本地数据库文件保存到计算机之后,可以将其添加到主应用,方式与添加其他类型的现有文件相同。

将引用数据库添加到您的应用

  1. 通过 Visual Studio,为使用引用数据库的 Windows Phone 应用创建一个项目。该应用(主应用)不同于帮助器应用。

  2. 从主应用的“项目”菜单中选择“添加现有项”

  3. “添加现有项”菜单中,选择您要使用独立存储资源管理器保存到计算机的本地数据库文件,然后单击“添加”。这样会将本地数据库添加到项目。

  4. “解决方案资源管理器”中,右键单击本地数据库文件,然后设置文件属性,以便将该文件生成为“内容”,并始终复制到输出目录(“始终复制”)。

当通过应用部署本地数据库时,数据库将存储在部署后的安装文件夹中。安装文件夹为只读。主应用可以通过只读方式连接到该数据库,或将其复制到本地文件夹以进行读写操作。本节更详细地介绍了这两种选项。

重要说明重要说明:

如果您将从安装文件夹以独占方式访问参考数据库文件,则不建议对其进行加密。如果加密,会在首次连接时阻止系统执行例行的数据库维护操作,例如重新建立索引。要使用加密的参考数据库,可在使用前将其复制到本地文件夹,然后使用读写连接来连接到它。

从安装文件夹读取

  • 当连接到安装文件夹中的引用数据库时,必须在连接字符串中使用 File Mode 属性将连接指定为只读。下面的示例演示如何建立与安装文件夹的只读连接。有关连接字符串的更多信息,请参阅 Windows Phone 8 的本地数据库连接字符串

    // Create the data context.
    MyDataContext db = new MyDataContext("Data Source = 'appdata:/mydb.sdf'; File Mode = read only;");
    

    在本示例中,在文件路径中使用 appdata 前缀以区分安装文件夹 (appdata) 中的路径和本地文件夹 (isostore) 中的路径。若没有前缀,则数据上下文将应用本地文件夹的路径。

将引用数据库复制到本地文件夹

  • 若要将引用数据库从安装文件夹复制到本地文件夹,请执行基于流的复制。以下示例显示了一个名为 MoveReferenceDatabase 的方法,该方法将名为 ReferencedDB.sdf 的本地数据库文件从安装文件夹的根目录复制到本地文件夹的根目录。

    using System;
    using System.IO;
    using System.IO.IsolatedStorage;
    using System.Windows;
    
    
    namespace PrimaryApplication
    {
        public class DataHelper
        {
    
            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("ReferenceDB.sdf", UriKind.Relative)).Stream)
                {
                    // Create a stream for the new file in the local folder.
                    using (IsolatedStorageFileStream output = iso.CreateFile("ReferenceDB.sdf"))
                    {
                        // Initialize the buffer.
                        byte[] readBuffer = new byte[4096];
                        int bytesRead = -1;
    
                        // Copy the file from the installation folder to the local folder. 
                        while ((bytesRead = input.Read(readBuffer, 0, readBuffer.Length)) > 0)
                        {
                            output.Write(readBuffer, 0, bytesRead);
                        }
                    }
                }
            }
        }
    }
    
    

显示:
© 2014 Microsoft