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"
注意
.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) 超過最大長度限制。