OracleConnection.ConnectionString 属性
获取或设置用于打开 Oracle 数据库的字符串。
命名空间:System.Data.OracleClient
程序集:System.Data.OracleClient(在 system.data.oracleclient.dll 中)
只有在连接关闭时才能设置 ConnectionString 属性。
可以使用 ConnectionString 属性连接到数据库。下面的示例阐释了一个典型的连接字符串。
"Data Source=Oracle8i;Integrated Security=yes"
在字符串中指定的许多设置都具有相应的只读属性(例如,与 DataSource 属性对应的 Data Source=MyServer)。当设置连接字符串时,所有这些属性都将被更新,除非检测到错误;如果发生错误,则不更新任何属性。OracleConnection 属性只返回默认设置或者那些在 ConnectionString 中指定的设置。
如果重置已关闭的连接上的 ConnectionString,将重置包括密码在内的所有连接字符串值(及其相关属性)。
在设置后会立即分析连接字符串。如果分析时发现语法错误,则会生成运行时异常,如 ArgumentException。只有当试图打开连接时,才会发现其他错误。
连接字符串的基本格式是一系列由分号分隔的关键字/值对。等号 (= ) 连接各个关键字及其值。若要包括含有分号、单引号字符或双引号字符的值,则该值必须用双引号括起来。如果该值同时包含分号和双引号字符,则该值可以用单引号括起来。如果该值以双引号字符开始,则还可以使用单引号。相反地,如果该值以单引号开始,则可以使用双引号。如果该值同时包含单引号和双引号字符,则用于将值括起来的引号字符每次出现时,都必须成对出现。
若要在字符串值中包括前导或尾随空格,则该值必须用单引号或双引号括起来。即使将整数、布尔值或枚举值用引号括起来,其周围的任何前导或尾随空格也将被忽略。然而,保留字符串关键字或值内的空格。如果引号字符不是值中的第一个字符或最后一个字符,则可在没有使用分隔符的连接字符串中使用单引号或双引号(例如,Data Source= my'Server 或 Data Source= my"Server)。
若要在关键字或值中包括等号 (=),则它之前必须还有另一个等号。例如,在假设的连接字符串中,
"key==word=value"
关键字是“key=word”并且值是“value”。
如果关键字/值对中的一个特定关键字多次出现在连接字符串中,则将所列出的最后一个用于值集。
关键字不区分大小写。
下表为 ConnectionString 内的值列出了有效的名称。
名称 | 默认值 | 说明 |
---|---|---|
Data Source - 或 - Server | 要连接的 Oracle 实例的名称或网络地址。 | |
Integrated Security | 'false' | 该连接是否为安全的连接。 可识别的值为 true(极力建议使用)、false、yes 和 no。 |
Password | Oracle 帐户的登录密码。为了保持较高的安全级别,强烈建议您改用集成安全性关键字。 | |
Persist Security Info | 'false' | 当设置为 false 或 no(强烈建议)时,如果连接是打开的或者一直处于打开的 State,那么安全敏感的信息(如密码)就不会作为连接的一部分返回。重置连接字符串将重置包括密码在内的所有连接字符串值。 可识别的值为 true、false、yes 和 no。 |
Unicode | 'false' | 指定用于 Oracle 的.NET Framework 数据提供程序是否使用 UTF16 模式 API 调用。忽略此关键字,但使用 Oracle9i 客户端软件时除外。 |
User ID | Oracle 登录帐户。为了保持较高的安全级别,强烈建议您改用集成安全性关键字。 |
下表列出了 ConnectionString 内连接池值的有效名称。
名称 | 默认值 | 说明 |
---|---|---|
Connection Lifetime | 0 | 当连接被返回到池时,将其创建时间与当前时间作比较,如果时间长度(以秒为单位)超出了由 Connection Lifetime 指定的值,该连接就会被销毁。这在聚集配置中很有用(用于强制执行运行中的服务器和刚置于联机状态的服务器之间的负载平衡)。 零值将使池连接具有最大的连接超时。 |
Enlist | 'true' | 为 true 或 yes 时,池程序在创建线程的当前事务上下文中自动登记连接。 可识别的值为 true、false、yes 和 no。 |
Max Pool Size | 100 | 池中允许的最大连接数。设置 ConnectionString 的 Max Pool Size 值可能会影响性能。如果计划创建并主动使用 100 个以上的连接,应增加 Max Pool Size,使之接近可使应用程序的连接使用处于稳定状态的值。 |
Min Pool Size | 0 | 池中允许的最小连接数。 |
Pooling | 'true' | 为 true 或 yes 时,就从适当的池提取 OracleConnection 对象,或在必要时创建该对象并将其添加至适当的池。 可识别的值为 true、false、yes 和 no。 |
当设置需要布尔值的关键字或连接池值时,您可以使用 'yes' 代替 'true','no' 代替 'false'。整数值表示为字符串。
下面的示例创建一个 OracleConnection,并在连接字符串中设置它的一些属性。
public void CreateOracleConnection() { string connectionString = "Data Source=Oracle8i;Integrated Security=yes"; using (OracleConnection connection = new OracleConnection(connectionString)) { connection.Open(); Console.WriteLine("ServerVersion: " + connection.ServerVersion + "\nDataSource: " + connection.DataSource); } }
Windows 98、Windows 2000 SP4、Windows Millennium Edition、Windows Server 2003、Windows XP Media Center Edition、Windows XP Professional x64 Edition、Windows XP SP2、Windows XP Starter Edition
.NET Framework 并不是对每个平台的所有版本都提供支持。有关受支持版本的列表,请参见系统要求。