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 資料提供者所支援的關鍵字。 然而,該 ConnectionString 屬性的行為就像 Persist Security Info 被設定為 false。 這表示如果連線已被開啟,你無法從 ConnectionString 該屬性中取得密碼。 當從已開啟的物件讀取OdbcConnection該ConnectionString屬性時,連線字串會回傳但不含密碼的連結字串。 你無法改變這種行為;因此,如果應用程式需要密碼,請在呼叫 Open前先分別儲存密碼。
字串中指定的許多設定都有對應的唯讀屬性(例如, Server=(local)對應於該 DataSource 屬性)。 這些屬性會在連線開啟後更新,除非偵測到錯誤。 在這種情況下,所有屬性都沒有更新。
OdbcConnection 屬性(例如 Database)僅回傳預設設定或 中指定的 ConnectionString設定。
當你設定 ConnectionString 屬性時,連線字串會進行一些基本的驗證。 此時,資料提供者會驗證連線字串是否符合「關鍵字=值;...」格式,但無法驗證關鍵字或值是否有效。 剩餘的驗證由底層 ODBC 驅動程式在應用程式呼叫該 Open 方法時執行。
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)超過最大長度限制。