Share via


SqlCeConnection.ConnectionString 属性

获取或设置用于打开数据库的字符串。

命名空间:  System.Data.SqlServerCe
程序集:  System.Data.SqlServerCe(在 System.Data.SqlServerCe.dll 中)

语法

声明
Public Overrides Property ConnectionString As String
    Get
    Set
用法
Dim instance As SqlCeConnection
Dim value As String

value = instance.ConnectionString

instance.ConnectionString = value
public override string ConnectionString { get; set; }
public:
virtual property String^ ConnectionString {
    String^ get () override;
    void set (String^ value) override;
}
abstract ConnectionString : string with get, set
override ConnectionString : string with get, set
override function get ConnectionString () : String
override function set ConnectionString (value : String)

属性值

类型:System.String
SQL Server Compact 的 .NET Compact Framework 数据提供程序中包括创建初始连接所需的数据源名称和其他参数。默认值为空字符串。

实现

IDbConnection.ConnectionString

异常

异常 条件
ArgumentException

提供的连接字符串参数无效。

注释

只有在连接关闭时才能设置 ConnectionString 属性。许多连接字符串值都具有相应的只读属性。当设置连接字符串时,将更新所有这些属性(除非检测到错误)。在此种情况下,不会更新任何属性。SqlCeConnection 属性只返回那些包含在 ConnectionString 中的设置。

重置已关闭的连接上的 ConnectionString 将会重置包括密码在内的所有连接字符串值和相关属性。

下表列出了 SQL Server Compact 中支持的 ConnectionString 属性。

属性

说明

data source 或 datasource

SQL Server Compact 数据库的文件路径和名称。若要指明从应用程序目录到数据库的相对路径,请使用 Data Source = |DataDirectory|(用管道符号括起来)替换字符串。使用 AppDomain 对象上的 SetData() 方法来设置应用程序的数据目录。设备不支持 DataDirectory。有关更多信息,请参阅在桌面上安装和部署 (SQL Server Compact)

Password 或 Pwd 或 database password 或 ssce:database password

数据库密码,最多包含 40 个字符。如果未指定,默认值为没有密码。如果对数据库启用加密功能,此属性为必需的。如果指定了一个密码,就对该数据库自动启用加密。如果指定一个空密码,则不会对该数据库加密。

ssce:enlist

enlist

默认情况下,enlist 的值为 false。可以将该值设置为 true。如果使用设置为 true 的 Enlist 打开指向 SQL Server Compact 数据库的连接,则该连接将提升为一个事务。

ssce:encryption mode

encryption mode

此属性的值为

engine default

platform default

默认值为 platform default。

注意注意
该属性是一个数据库创建时间选项,在连接到现有数据库时将忽略。

Encrypt 或 encrypt database 或 ssce:encrypt database

确定数据库是否已经加密的布尔值。启用加密功能时,必须设置为 true;不使用加密功能时,必须设置为 false。如果未指定,默认值为 false。如果启用加密功能,必须也使用 password 属性指定密码。如果指定密码,不管此属性如何设置,都将启用加密功能。

注意注意
该属性是一个数据库创建时间选项,在连接到现有数据库时将忽略。如果指定了 SSCE:Database 数据库密码,则不管是否指定 SSCE:Encrypt Database,都始终加密数据库。

max buffer size 或 ssce:max buffer size

在开始将更改刷新到磁盘之前,SQL Server Compact 可以使用的最大内存量 (KB)。如果未指定,默认值为 640。

max database size 或 ssce:max database size

最大数据库大小 (MB)。如果未指定,默认值为 128。

Mode 或 file mode 或 ssce:mode

打开数据库文件时要使用的模式。有效值请参见下表。如果未指定,默认值为“读写”。

default lock timeout 或 ssce:default lock timeout

事务等待锁的默认毫秒数。如果未指定,默认值为 2000。

default lock escalation 或 ssce:default lock escalation

事务在试图从行升级到页或从页升级到表之前将会获得的锁定数。如果未指定,默认值为 100。

flush interval 或 ssce:flush interval

在将所有已提交的事务刷新到磁盘之前指定的间隔时间(以秒为单位)。如果未指定,默认值为 10。

autoshrink threshold 或 ssce:autoshrink threshold

在自动压缩开始之前允许的数据库文件中可用空间的百分比。值为 100 将禁用自动收缩功能。如果未指定,默认值为 60。

temp path 或 temp file directory 或 ssce:temp file directory

临时数据库的位置。如果未指定,默认情况下,将使用数据源属性中指定的数据库来进行临时存储。

临时文件最大大小

临时数据库文件的最大大小 (MB)。如果未指定,默认值为 128。

persist security info

当设置为 false(强烈建议使用此值)时,如果打开了连接或者连接一直处于打开状态,那么安全性敏感信息(如密码)就不会作为连接的一部分返回。重置连接字符串将重置包括密码在内的所有连接字符串值。默认值为 false。

locale identifier 或 Lcid 或 initial lcid

用于数据库的区域设置 ID (LCID)。CultureInfo 类中列出了有效的 LCID 值。

注意注意
该属性是一个数据库创建时间选项,在连接到现有数据库时将忽略。

Case Sensitive 或 CaseSensitive

确定数据库排序规则是否区分大小写的布尔值。启用区分大小写的排序规则时,必须设置为 true;启用不区分大小写的排序规则时,必须设置为 false。如果未指定,默认值为 false。如果连接到现有的 SQL Server Compact 数据库,且连接字符串中有“Case Sensitive”属性,则 SQL Server Compact 3.5 SP1 会忽略该设置。

注意注意
该属性是一个数据库创建时间选项,在连接到现有数据库时将忽略。

下表显示了连接字符串的 mode 属性的有效值。

定义

读写

允许多个进程打开和修改数据库。这是未指定 mode 属性时的默认设置。

只读

允许您打开数据库的一个只读副本。

独占

不允许其他进程打开或修改数据库。

共享读取

当打开数据库时,允许其他进程读取数据库,但不允许修改数据库。

如果设置了该属性,会对连接字符串执行预验证。应用程序调用 Open 方法时,就对连接字符串进行全面验证。如果连接字符串包含不支持的或无效的属性,则此时将生成运行时异常,如 ArgumentException

下列规则适用于连接字符串:

  1. 将忽略除放置在一个值或引号内的空白字符之外的所有空白字符。

  2. 关键字值对之间必须用分号 (;) 分隔。如果分号是值的一部分,还必须用引号对其进行分隔。

  3. 不支持任何转义序列。

  4. 与值类型无关。

  5. 名称不区分大小写。

  6. 如果属性名在连接字符串中不止出现一次,则使用与最后出现的属性名相关联的值。

  7. 值可以用单引号或双引号分隔(例如,name='value' 或 name="value")。在使用其他分隔符的连接字符串中可以使用单引号或双引号。例如,在连接字符串中,下列引号用法是有效的:

    "data source='MyDb.sdf'; mode=Exclusive;"
    'data source="MyDb.sdf"; mode=Exclusive;'
    

    但是这些示例是无效的:

    "data source="MyDb.sdf"; mode=Exclusive;"
    'data source='MyDb.sdf'; mode=Exclusive;'
    

示例

下面的示例创建一个 SqlCeConnection 并在连接字符串中设置它的一些属性。

Dim conn As New SqlCeConnection()

' Set some connection string properties e.g.:
' 
conn.ConnectionString = _
    "Persist Security Info = False; Data Source = 'SalesData.sdf';" & _
    "Password = '<password>'; File Mode = 'shared read'; " & _
    "Max Database Size = 256; Max Buffer Size = 1024"

conn.Open()

' You can change the database while preserving 
' the orignal connection options
'
conn.ChangeDatabase("SupportData.sdf")
SqlCeConnection conn = new SqlCeConnection();

// Set some connection string properties e.g.:
// 
conn.ConnectionString = 
    "Persist Security Info = False; Data Source = 'SalesData.sdf';" +
    "Password = '<password>'; File Mode = 'shared read'; " +
    "Max Database Size = 256; Max Buffer Size = 1024";

conn.Open();

// You can change the database while preserving 
// the orignal connection options
//
conn.ChangeDatabase("SupportData.sdf");

请参阅

参考

SqlCeConnection 类

System.Data.SqlServerCe 命名空间

其他资源

从早期版本进行升级 (SQL Server Compact)