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"

注意

.NET Framework Data Provider for ODBC 不支援Persist Security Info其他 .NET Framework 數據提供者支持的關鍵詞。 不過, 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;...”format,但不會驗證關鍵詞或值是否有效。 當應用程式呼叫 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 關鍵詞的值不只包含空白。

由於 連接字串 和初始化檔案文法,因此應該避免包含字元 []{} 的關鍵詞和屬性值 () ;?*=!@ 未以大括弧括住。 DSN 關鍵詞的值不能只包含空白,不應包含前置空白。 由於系統資訊的文法,關鍵詞和數據源名稱不能包含反斜杠 (\) 字元。

除非屬性包含分號 (;) ,否則應用程式不需要在 Driver 關鍵詞後面加上屬性值大括弧,在此情況下,需要大括弧。 如果驅動程式收到的屬性值包含大括弧,則驅動程式不應該移除它們,但應該會是傳回 連接字串 的一部分。

以大括弧括住的 DSN 或 連接字串 值 ({}) ,其中包含任何字元 []{} () ,;?*=!@ 會完整傳遞至驅動程式。 不過,當您在關鍵詞中使用這些字元時,驅動程式管理員會在處理檔案 DSN 時傳回錯誤,但會將 連接字串 傳遞至驅動程式以進行一般連接字串。 避免在關鍵詞值中使用內嵌大括弧。

連接字串 可能包含任意數目的驅動程式定義關鍵詞。 因為 DRIVER 關鍵詞不使用系統的資訊,所以驅動程式必須定義足夠的關鍵詞,讓驅動程式只能使用 連接字串 中的資訊連接到數據源。 驅動程式會定義連線至數據源所需的關鍵詞。

如果 連接字串 中重複任何關鍵詞,則不保證會選取哪個值。

注意

如果 ODBC 驅動程式支援超過 1024 個字元的連接字串,您可以使用資料來源名稱 (DSN) 超過最大長度限制。

適用於

另請參閱