OleDbConnection.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); };
[System.ComponentModel.SettingsBindable(true)]
public override string ConnectionString { get; set; }
[System.Data.DataSysDescription("OleDbConnection_ConnectionString")]
public string ConnectionString { get; set; }
public override string ConnectionString { get; set; }
[<System.ComponentModel.SettingsBindable(true)>]
member this.ConnectionString : string with get, set
[<System.Data.DataSysDescription("OleDbConnection_ConnectionString")>]
member this.ConnectionString : string with get, set
member this.ConnectionString : string with get, set
Public Overrides Property ConnectionString As String
Public Property ConnectionString As String

屬性值

OLE DB 提供者連接字串,包含資料來源名稱,以及建立初始連接所需要的其他參數。 預設值為空字串。

實作

屬性

例外狀況

提供無效的連接字串引數,或未提供必要的連接字串引數。

範例

下列範例會建立 ,OleDbConnection並在 連接字串 中設定其部分屬性。

static void OpenConnection(string connectionString)
{
    using (OleDbConnection connection = new OleDbConnection(connectionString))
    {
        try
        {
            connection.Open();
            Console.WriteLine("ServerVersion: {0} \nDataSource: {1}",
                connection.ServerVersion, connection.DataSource);
        }
        catch (Exception ex)
        {
            Console.WriteLine(ex.Message);
        }
        // The connection is automatically closed when the
        // code exits the using block.
    }
}
Public Sub OpenConnection(ByVal connectionString As String)

    Using connection As New OleDbConnection(connectionString)
        Try
            connection.Open()
            Console.WriteLine("Server Version: {0} DataSource: {1}", _
                connection.ServerVersion, connection.DataSource)
        Catch ex As Exception
            Console.WriteLine(ex.Message)
        End Try
        ' The connection is automatically closed when the
        ' code exits the Using block.
    End Using
End Sub

備註

ConnectionString的設計目的是盡可能比對 OLE DB 連接字串 格式,但有下列例外狀況:

  • 需要 「Provider = value 」 子句。 不過,您無法使用 「Provider = MSDASQL」,因為 OLE DB .NET Framework Data Provider for OLE DB 不支援 OLE DB Provider for ODBC (MSDASQL) 。 若要存取 ODBC 資料來源,請使用 OdbcConnection 命名空間中的 System.Data.Odbc 物件。

  • 不同於 ODBC 或 ADO,傳回的 連接字串 與使用者設定ConnectionString相同,如果 Persist Security Info 設定false為 (預設) ,則會減去安全性資訊。 .NET Framework OLE DB 的數據提供者不會保存或傳回 連接字串 中的密碼,除非您將 關鍵詞設定Persist Security Infotrue (不建議) 。 若要維持高層級的安全性,強烈建議您將 Integrated Security 關鍵詞與 Persist Security Info 設定為 false

您可以使用 ConnectionString 屬性來連線到各種數據源。 下列範例說明數個可能的連接字串。

"Provider=MSDAORA; Data Source=ORACLE8i7;Persist Security Info=False;Integrated Security=Yes"

"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=c:\bin\LocalAccess40.mdb"

"Provider=SQLOLEDB;Data Source=(local);Integrated Security=SSPI"

Data Source如果未在 連接字串 中指定 關鍵詞,提供者將會嘗試連線到本機伺服器。如果有的話。

如需連接字串的詳細資訊,請參閱搭配使用連接字串關鍵詞與 SQL Server Native Client

ConnectionString只有當連接關閉時,才能設定 屬性。 許多 連接字串 值都有對應的唯讀屬性。 設定 連接字串 時,會更新這些屬性,但偵測到錯誤時除外。 在此情況下,不會更新任何屬性。 OleDbConnection 屬性只會傳回 包含在 中的 ConnectionString設定。

重設關閉連線上的 會ConnectionString重設所有 連接字串 值和相關屬性。 這包括密碼。 例如,如果您設定包含 「Initial Catalog= AdventureWorks」 的 連接字串,然後將 連接字串 重設為 “Provider= SQLOLEDB;數據源= MySQLServer;IntegratedSecurity=SSPI“,Database屬性不再設定為 AdventureWorks。 (連接字串 的初始目錄值會對應至 Database property.)

設定 屬性時,會執行 連接字串 的初步驗證。 如果、 Connect TimeoutPersist Security InfoOLE DB Services 的值Provider包含在字串中,則會檢查這些值。 當應用程式呼叫 Open 方法時,會完整驗證 連接字串。 如果 連接字串 包含無效或不支援的屬性,則會產生執行時例外狀況,例如 ArgumentException

警告

您可以在通用數據連結 (UDL) 檔案中提供 OleDbConnection 的連線資訊;不過,您應該避免這麼做。 UDL 檔案不會加密,並以純文本公開 連接字串 資訊。 因為對您的應用程式而言,UDL 檔是外部的檔案型資源,所以您無法使用 .NET Framework 來保護該檔案。

連接字串 的基本格式包含一系列以分號分隔的關鍵詞/值組。 等號 (=) 會連接每個關鍵字和其值。 若要包含包含分號、單引號字元或雙引號字元的值,值必須以雙引號括住。 如果值同時包含分號和雙引號字元,則可以以單引號括住此值。 如果值以雙引號字元開頭,單引號也很有用。 相反地,如果值以單引號開頭,則可以使用雙引號。 如果值同時包含單引號和雙引號字元,則每次值內發生時,用來括住值的引號字元都必須加倍。

若要在字串值中包含前面或尾端空格,值必須以單引號或雙引弧括住。 即使以引弧括住,整數、布爾值或列舉值周圍的任何前置或尾端空格都會被忽略。 不過,會保留字串常值關鍵詞或值內的空格。 單引號或雙引號可以在 連接字串 內使用,而不使用分隔符 (,例如,除非引號字元是值中的第一個或最後一個字元,Data Source= my'Server否則 Data Source= my"Server) 。

若要在關鍵詞或值中包含等號 (=) ,它前面必須加上另一個等號。 例如,在假設 連接字串

"key==word=value"

關鍵詞為 “key=word”,且值為 “value”。

如果keyword=value 配對中的特定關鍵詞在 連接字串 中多次發生,則會在值集中使用最後一次列出的關鍵詞。

關鍵詞不區分大小寫。

警告

例如,從對話框擷取使用者標識碼和密碼資訊,並將它附加至 連接字串 時,您應該小心建構 連接字串。 應用程式應該確定使用者無法在這些值中內嵌其他連接字串參數,例如,輸入密碼為 「validpassword;database= somedb“,嘗試附加至不同的資料庫。 如果您針對 OLE DB 連線使用擴充屬性 連接字串 參數,請避免傳遞使用者識別元和密碼,因為您可以避免將使用者識別碼和密碼儲存在純文字中,以及 因為的預設設定Persist Security Info= false不會影響 Extended Properties 參數。

適用於

另請參閱