OdbcConnection.ConnectionString 属性
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
获取或设置用于打开数据源的字符串。
public:
virtual property System::String ^ ConnectionString { System::String ^ get(); void set(System::String ^ value); };
public:
property System::String ^ ConnectionString { System::String ^ get(); void set(System::String ^ value); };
public override string ConnectionString { get; set; }
public string ConnectionString { get; set; }
[System.ComponentModel.SettingsBindable(true)]
public override string ConnectionString { get; set; }
member this.ConnectionString : string with get, set
[<System.ComponentModel.SettingsBindable(true)>]
member this.ConnectionString : string with get, set
Public Overrides Property ConnectionString As String
Public Property ConnectionString As String
属性值
包括一些需要建立初始连接的设置(例如,数据源名称)的 ODBC 驱动程序连接字符串。 默认值为空字符串 ("")。 最大长度是 1024 个字符。
实现
- 属性
注解
属性ConnectionString旨在尽可能匹配 ODBC 连接字符串格式。 ConnectionString仅当连接关闭时,才能设置 ,并且一旦设置它,它就会传递到驱动程序管理器和基础驱动程序,保持不变。 因此,的 ConnectionString 语法必须完全匹配驱动程序管理器和基础驱动程序支持的内容。
可以使用 ConnectionString 属性连接到各种数据源。 这包括 ODBC 数据源名称 (DSN) 。 以下示例演示了多个可能的连接字符串。
"Driver={SQL Server};Server=(local);Trusted_Connection=Yes;Database=AdventureWorks;"
"Driver={Microsoft ODBC for Oracle};Server=ORACLE8i7;Persist Security Info=False;Trusted_Connection=Yes"
"Driver={Microsoft Access Driver (*.mdb)};DBQ=c:\bin\Northwind.mdb"
"Driver={Microsoft Excel Driver (*.xls)};DBQ=c:\bin\book1.xls"
"Driver={Microsoft Text Driver (*.txt; *.csv)};DBQ=c:\bin"
"DSN=dsnname"
注意
ODBC .NET Framework 数据提供程序不支持Persist Security Info
其他.NET Framework数据提供程序支持的关键字 (keyword) 。 但是, ConnectionString 属性的行为就像 Persist Security Info
设置为 false
一样。 这意味着,如果已打开连接, ConnectionString 则无法从 属性检索密码。
ConnectionString从OdbcConnection已打开的对象读取属性时,将返回连接字符串减去密码。 无法更改此行为;因此,如果应用程序需要密码,请在调用 Open之前单独存储密码。
字符串中指定的许多设置都具有相应的只读属性 (例如 , Server=(local)
对应于 DataSource 属性) 。 这些属性在连接打开后更新,检测到错误时除外。 在这种情况下,不会更新任何属性。
OdbcConnection 属性 ((如 Database) )仅返回默认设置或在 中指定的 ConnectionString那些设置。
在 Microsoft .NET Framework版本 1.0 中,在应用程序调用 Open 方法之前,不会验证连接字符串。 基础 ODBC 驱动程序负责验证连接字符串。 如果连接字符串包含无效或不受支持的属性,驱动程序可能会在运行时引发 OdbcException 。
但是,在.NET Framework版本 1.1 及更高版本中,一旦设置 ConnectionString 属性,就会立即对连接字符串进行一些基本验证。 此时,数据提供程序会验证连接字符串是否满足“关键字 (keyword) =value;...”格式,但不验证关键字或值是否有效。 当应用程序调用 Open 方法时,剩余的验证由基础 ODBC 驱动程序执行。
ODBC 连接字符串具有以下语法:
connection-string ::= empty-string[;] | attribute[;] | attribute; connection-string
empty-string ::=
attribute ::= attribute-keyword=attribute-value | DRIVER=[{]attribute-value[}]
attribute-keyword ::= DSN | UID | PWD
| driver-defined-attribute-keyword
attribute-value ::= character-string
driver-defined-attribute-keyword ::= identifier
其中character-string
,包含零个或多个字符;identifier
有一个或多个字符;attribute-keyword
不区分大小写;attribute-value
可以区分大小写;DSN 关键字 (keyword) 的值不只包含空白。
由于连接字符串和初始化文件语法,应避免包含字符 []{} () ,;?*=!@ 未用大括号括起来。 DSN 关键字 (keyword) 的值不能只包含空格,不应包含前导空格。 由于系统信息的语法,关键字和数据源名称不能包含反斜杠 (\) 字符。
除非属性包含分号 (;) ,否则应用程序不必在驱动程序关键字 (keyword) 后在属性值周围添加大括号,在这种情况下,需要大括号。 如果驱动程序收到的属性值包含大括号,则驱动程序不应删除它们,但它们应是返回连接字符串的一部分。
用大括号括起来的 DSN 或连接字符串值, ({}) 包含任何字符 []{} () ,;?*=!@ 将完好无损地传递给驱动程序。 但是,在关键字 (keyword) 中使用这些字符时,驱动程序管理器在处理文件 DSN 时会返回错误,但会将连接字符串传递给驱动程序以获取常规连接字符串。 避免在关键字 (keyword) 值中使用嵌入的大括号。
连接字符串可能包含任意数量的驱动程序定义的关键字。 由于 DRIVER 关键字 (keyword) 不使用系统中的信息,因此驱动程序必须定义足够的关键字,以便驱动程序只能使用连接字符串中的信息连接到数据源。 驱动程序定义连接到数据源所需的关键字。
如果在连接字符串中重复任何关键字,则不能保证会选择哪个值。
注意
如果 ODBC 驱动程序支持的连接字符串长度超过 1024 个字符,则可以使用数据源名称 (DSN) 超过最大长度限制。