OdbcConnection.ConnectionString 属性

定义

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

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 则无法从 属性检索密码。 ConnectionStringOdbcConnection已打开的对象读取属性时,将返回连接字符串减去密码。 无法更改此行为;因此,如果应用程序需要密码,请在调用 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) 超过最大长度限制。

适用于

另请参阅