Windows Phone 的本地数据库连接字符串
2013/3/11
适用于: Windows Phone 8 | Windows Phone OS 7.1
Windows Phone 应用可以使用 LINQ to SQL 将关系数据存储在本地数据库中。本主题介绍可在应用中与本地数据库一起使用的受支持连接字符串参数。有关使用本地数据库的更多信息,请参见 Windows Phone 本地数据库。
本主题包含以下各节。
下表列出了本地数据库连接字符串支持的所有参数。
参数 | 说明 |
|---|---|
data source 或 datasource | 本地数据库文件的文件路径和文件名。如果仅指定此连接字符串属性,则只需要该属性值即可实例化一个数据上下文对象。有关数据上下文的更多信息,请参见 Windows Phone 本地数据库。 使用下面的前缀显式指定该路径的根位置。
如果未指定前缀,则文件路径适用于本地文件夹。 |
Password 或 Pwd 或 database password 或 ssce:database password | 数据库密码,最长为 40 个字符。如果未指定,则默认值为无密码。如果您在数据库上启用加密,则需要使用此属性。如果您指定密码,则会自动在数据库上启用加密。如果您指定一个空密码,则该数据库不会进行加密。 注意:无法在数据库创建后进行加密。 数据库是使用 AES-128 加密的,而密码是使用 SHA-256 进行哈希处理的。 若要对所选的数据(而不是整个数据库)进行加密,请参见如何加密 Windows Phone 应用程序中的数据。 |
max buffer size 或 ssce:max buffer size | 本地数据库在开始将更改刷新到磁盘之前可以使用的最大内存量(以千字节为单位)。如果未指定,则默认值为 384。最大值为 5120。 |
max database size 或 ssce:max database size | 本地数据库的最大大小(以兆字节为单位)。如果未指定,则默认值为 32。最大值为 512。 |
Mode 或 file mode 或 ssce:mode | 打开数据库文件时要使用的模式。有效值如下:
重要说明:从 Windows Phone 8 开始,仅在使用安装文件夹时支持 Read Only 参数值。 |
Culture Identifier | 用于数据库的区域性代码。例如,en-US 代表“英语(美国)”。有关 Windows Phone OS 7.1 中支持的区域性代码的完整列表,请参见 Windows Phone 的区域性和语言支持。 注意:如果此属性在连接到现有数据库时使用,则会被忽略。 |
Case Sensitive 或 CaseSensitive | 用来确定数据库的排序规则是否区分大小写的 Boolean 值。必须设置为 true 才能启用区分大小写的排序规则;false 表示排序规则不区分大小写。如果未指定,则默认值为 false。 注意:如果此属性在连接到现有数据库时使用,则会被忽略。 |
重要说明: |
|---|
某些 Microsoft SQL Compact 连接字符串参数可能适用于此 Windows Phone 应用平台 发行版。建议不要使用本主题中未列出的任何连接字符串参数。 |
下面的示例演示如何对本地数据库使用连接字符串。
单个参数的用法
如果您只使用数据源属性,则不需要在连接字符串中包括属性名称,如以下示例中所示。
// Create the data context. MyDataContext db = new MyDataContext ("isostore:/mydb.sdf")
在此示例中,isostore 前缀指示该文件位于本地文件夹中。
从安装文件夹中读取
安装文件夹不支持写入操作。当连接到该处的本地数据库时,必须使用 File Mode 属性将连接指定为只读。下面的示例演示如何建立与安装文件夹的只读连接。
// Create the data context. MyDataContext db = new MyDataContext("Data Source = 'appdata:/mydb.sdf'; File Mode = read only;");
重要说明: |
|---|
如果您将从安装文件夹以独占方式访问参考数据库文件,则不建议对其进行加密。如果加密,会在首次连接时阻止系统执行例行的数据库维护操作,例如重新建立索引。要使用加密的参考数据库,可在使用前将其复制到本地文件夹,然后使用读写连接来连接到它。有关如何复制它的更多信息,请参见如何使用 Windows Phone 应用部署参考数据库。 |
创建加密的数据库
如果需要加密数据库,则必须在连接字符串中指定一个密码,然后再创建数据库。在此示例中,在数据库创建之前指定了一个密码。
// Create the data context. MyDataContext db = new MyDataContext("Data Source='isostore:/mydb.sdf';Password='securepassword';"); // Create an encrypted database after confirming that it does not exist. if (!db.DatabaseExists()) db.CreateDatabase();
若要对所选的数据(而不是整个数据库)进行加密,请参见如何加密 Windows Phone 应用程序中的数据。
使用特定的区域性创建数据库
在此示例中,将创建一个具有德语区域性和区分大小写排序规则的数据库。
// Create the data context. MyDataContext db = new MyDataContext("Data Source = 'mydb.sdf'; Culture Identifier = de-de; Case Sensitive = true;"); // Create a database after confirming that it does not exist. if (!db.DatabaseExists()) db.CreateDatabase();
注意:
重要说明: