SqlConnectionStringBuilder 類別

定義

提供簡單的方法,以建立和管理 SqlConnection 類別使用之連接字串的內容。

public ref class SqlConnectionStringBuilder sealed : System::Data::Common::DbConnectionStringBuilder
public sealed class SqlConnectionStringBuilder : System.Data.Common.DbConnectionStringBuilder
[System.ComponentModel.TypeConverter(typeof(System.Data.SqlClient.SqlConnectionStringBuilder+SqlConnectionStringBuilderConverter))]
public sealed class SqlConnectionStringBuilder : System.Data.Common.DbConnectionStringBuilder
type SqlConnectionStringBuilder = class
    inherit DbConnectionStringBuilder
[<System.ComponentModel.TypeConverter(typeof(System.Data.SqlClient.SqlConnectionStringBuilder+SqlConnectionStringBuilderConverter))>]
type SqlConnectionStringBuilder = class
    inherit DbConnectionStringBuilder
Public NotInheritable Class SqlConnectionStringBuilder
Inherits DbConnectionStringBuilder
繼承
SqlConnectionStringBuilder
屬性

範例

下列主控台應用程式會建置SQL Server資料庫的連接字串。 此程式碼會使用 SqlConnectionStringBuilder 類別建立連接字串,然後將 ConnectionString 執行個體的 SqlConnectionStringBuilder 屬性傳遞給連接類別的建構函式。 此範例也會剖析現有的連接字串,並示範操作連接字串內容的各種方式。

注意

這個範例包含了密碼,可示範 SqlConnectionStringBuilder 如何搭配連接字串使用。 我們建議在您的應用程式中使用 Windows 驗證。 如果您必須使用密碼,請勿在您的應用程式中包含硬式編碼的密碼。

using System.Data;
using System.Data.SqlClient;

class Program
{
    static void Main()
    {
        // Create a new SqlConnectionStringBuilder and
        // initialize it with a few name/value pairs.
        SqlConnectionStringBuilder builder =
            new SqlConnectionStringBuilder(GetConnectionString());

        // The input connection string used the
        // Server key, but the new connection string uses
        // the well-known Data Source key instead.
        Console.WriteLine(builder.ConnectionString);

        // Pass the SqlConnectionStringBuilder an existing
        // connection string, and you can retrieve and
        // modify any of the elements.
        builder.ConnectionString = "server=(local);user id=ab;" +
            "password= a!Pass113;initial catalog=AdventureWorks";

        // Now that the connection string has been parsed,
        // you can work with individual items.
        Console.WriteLine(builder.Password);
        builder.Password = "new@1Password";
        builder.AsynchronousProcessing = true;

        // You can refer to connection keys using strings,
        // as well. When you use this technique (the default
        // Item property in Visual Basic, or the indexer in C#),
        // you can specify any synonym for the connection string key
        // name.
        builder["Server"] = ".";
        builder["Connect Timeout"] = 1000;
        builder["Trusted_Connection"] = true;
        Console.WriteLine(builder.ConnectionString);

        Console.WriteLine("Press Enter to finish.");
        Console.ReadLine();
    }

    private static string GetConnectionString()
    {
        // To avoid storing the connection string in your code,
        // you can retrieve it from a configuration file.
        return "Server=(local);Integrated Security=SSPI;" +
            "Initial Catalog=AdventureWorks";
    }
}
Imports System.Data.SqlClient

Module Module1
    Sub Main()
        ' Create a new SqlConnectionStringBuilder and
        ' initialize it with a few name/value pairs:
        Dim builder As New SqlConnectionStringBuilder(GetConnectionString())

        ' The input connection string used the 
        ' Server key, but the new connection string uses
        ' the well-known Data Source key instead.
        Console.WriteLine(builder.ConnectionString)

        ' Pass the SqlConnectionStringBuilder an existing 
        ' connection string, and you can retrieve and
        ' modify any of the elements.
        builder.ConnectionString = _
            "server=(local);user id=ab;" & _
            "password=a!Pass113;initial catalog=AdventureWorks"
        ' Now that the connection string has been parsed,
        ' you can work with individual items.
        Console.WriteLine(builder.Password)
        builder.Password = "new@1Password"
        builder.AsynchronousProcessing = True

        ' You can refer to connection keys using strings, 
        ' as well. When you use this technique (the default
        ' Item property in Visual Basic, or the indexer in C#)
        ' you can specify any synonym for the connection string key
        ' name.
        builder("Server") = "."
        builder("Connect Timeout") = 1000

        ' The Item property is the default for the class, 
        ' and setting the Item property adds the value to the 
        ' dictionary, if necessary. 
        builder.Item("Trusted_Connection") = True
        Console.WriteLine(builder.ConnectionString)

        Console.WriteLine("Press Enter to finish.")
        Console.ReadLine()
    End Sub

    Private Function GetConnectionString() As String
        ' To avoid storing the connection string in your code,
        ' you can retrieve it from a configuration file. 
        Return "Server=(local);Integrated Security=SSPI;" & _
          "Initial Catalog=AdventureWorks"
    End Function
End Module

備註

連接字串產生器 (Builder) 可讓開發人員使用類別的屬性和方法,以程式設計方式建立語法正確的連接字串,以及剖析和重建現有的連接字串。 連接字串產生器提供強型別 (Strongly Typed) 屬性,這些屬性對應到 SQL Server 允許的已知索引鍵/值組。 必須建立連接字串做為應用程式一部分的開發人員可以使用 SqlConnectionStringBuilder 類別來建置及修改連接字串。 此類別也可讓您輕鬆管理儲存在應用程式組態檔內的連接字串。

SqlConnectionStringBuilder 會執行有效索引鍵/值組的檢查。 因此,您無法使用這個類別來建立無效的連接字串,嘗試加入無效的索引鍵/值組將會擲回例外狀況。 此類別會維護固定的同義資料表 (Synonym) 集合,且可從同義資料表轉譯為相對應的已知索引鍵名稱。

例如,當您使用 Item 屬性來擷取值時,您可以指定字串,其中包含所需索引鍵的任何同義字。 例如,當您使用任何需要包含索引鍵名稱之字串的成員時,可以在連接字串內指定 「網路位址」、「addr」或任何其他可接受的同義字,例如 Item 屬性或 Remove 方法。 如需可接受的完整同義資料表清單,請參閱 ConnectionString 屬性。

Item 屬性控制碼會嘗試插入惡意專案。 例如,使用預設 Item 屬性 (C# 中則為索引子) 的下列程式碼會正確逸出巢狀索引鍵/值組:

Dim builder As New System.Data.SqlClient.SqlConnectionStringBuilder
builder("Data Source") = "(local)"
builder("Integrated Security") = True
builder("Initial Catalog") = "AdventureWorks;NewValue=Bad"
Console.WriteLine(builder.ConnectionString)
System.Data.SqlClient.SqlConnectionStringBuilder builder =
  new System.Data.SqlClient.SqlConnectionStringBuilder();
builder["Data Source"] = "(local)";
builder["integrated Security"] = true;
builder["Initial Catalog"] = "AdventureWorks;NewValue=Bad";
Console.WriteLine(builder.ConnectionString);

結果是以安全方式處理無效值的下列連接字串:

Source=(local);Initial Catalog="AdventureWorks;NewValue=Bad";
Integrated Security=True

建構函式

SqlConnectionStringBuilder()

初始化 SqlConnectionStringBuilder 類別的新執行個體。

SqlConnectionStringBuilder(String)

初始化 SqlConnectionStringBuilder 類別的新執行個體。 所提供的連接字串會提供執行個體內部連接資訊的資料。

屬性

ApplicationIntent

當連接到 SQL Server 可用性群組中的資料庫時,宣告應用程式工作負載類型。 您可以使用 ApplicationIntent 來設定這個屬性的值。 如需 AlwaysOn 可用性群組的 SqlClient 支援詳細資訊,請參閱高可用性、嚴重損壞修復的 SqlClient 支援

ApplicationName

取得或設定與連接字串相關聯的應用程式名稱。

AsynchronousProcessing

取得或設定布林值,指出使用這個連接字串建立的連接是否允許非同步處理 (Asynchronous Processing)。

AttachDBFilename

取得或設定包含主要資料檔名稱的字串。 這包括可附加之資料庫的完整路徑名稱。

Authentication

取得連接字串的驗證。

BrowsableConnectionString

取得或設定值,指出 ConnectionString 屬性是否會顯示在 Visual Studio 設計工具中。

(繼承來源 DbConnectionStringBuilder)
ColumnEncryptionSetting

取得或設定連接字串產生器的資料行加密設定。

ConnectionReset
已過時。

已過時。 取得或設定布林值,指出從連接集區提取時是否重設連接。

ConnectionString

取得或設定與 DbConnectionStringBuilder 相關聯的連接字串。

(繼承來源 DbConnectionStringBuilder)
ConnectRetryCount

在識別出閒置連線失敗後,已嘗試的重新連線次數。 此值必須是介於 0 到 255 之間的整數。 預設值為 1。 設定為 0 以停用閒置連線失敗的重新連線。 如果設為超出允許範圍的值,就會擲回 ArgumentException

ConnectRetryInterval

在識別出閒置連線的失敗之後,每個重新連線嘗試之間的時間量 (以秒為單位)。 此值必須是介於 1 到 60 之間的整數。 預設值是 10 秒。 如果設為超出允許範圍的值,就會擲回 ArgumentException

ConnectTimeout

取得或設定在終止嘗試並產生錯誤之前,要等待伺服器連接的時間長度 (以秒為單位)。

ContextConnection

取得或設定值,指出是否應該與 SQL Server 進行用戶端/伺服器或同處理序 (In-Process) 連接。

Count

取得 ConnectionString 屬性內所包含的索引鍵目前數目。

(繼承來源 DbConnectionStringBuilder)
CurrentLanguage

取得或設定 SQL Server Language 記錄名稱。

DataSource

取得或設定要連接之 SQL Server 執行個體的名稱或網路位址。

EnclaveAttestationUrl

取得或設定飛地證明 URL 以搭配飛地一律加密使用。

Encrypt

取得或設定布林值,指出如果伺服器已安裝憑證,SQL Server 是否會針對用戶端與伺服器之間傳送的所有資料使用 SSL 加密。

Enlist

取得或設定布林值,指出 SQL Server 連接共用器是否在建立執行緒的目前異動內容中,自動登記連接。

FailoverPartner

取得或設定主要伺服器當機時,要連接之夥伴伺服器的名稱或位址。

InitialCatalog

取得或設定與連接相關聯的資料庫名稱。

IntegratedSecurity

取得或設定布林值,指出是否在連接中指定使用者 ID 和密碼 (false 時) 或目前 Windows 帳戶認證是否用於驗證 (true 時)。

IsFixedSize

取得值,指出 SqlConnectionStringBuilder 是否有固定的大小。

IsFixedSize

取得值,指出 DbConnectionStringBuilder 是否有固定的大小。

(繼承來源 DbConnectionStringBuilder)
IsReadOnly

取得值,這個值表示 DbConnectionStringBuilder 是否為唯讀。

(繼承來源 DbConnectionStringBuilder)
Item[String]

取得或設定與指定之索引鍵相關聯的值。 在 C# 中,這個屬性是索引子 (Indexer)。

Keys

取得 ICollection 中包含索引鍵的 SqlConnectionStringBuilder

LoadBalanceTimeout

取得或設定在遭到終結之前,連接在連接集區中存在的最短時間 (以秒為單位)。

MaxPoolSize

取得或設定連接集區中,針對這個特定的連接字串允許的最大連接數目。

MinPoolSize

取得或設定連接集區中,針對這個特定的連接字串允許的最小連接數目。

MultipleActiveResultSets

為 true 時,應用程式可以維護 Multiple Active Result Sets(MARS)。 為 false 時,應用程式必須處理或取消一個批次處理的所有結果集,才能在該連接上執行任何其他批次處理。

如需詳細資訊,請參閱 Multiple Active Result Sets (MARS)

MultiSubnetFailover

如果您的應用程式連線到Always On可用性群組, (AG) 或Always On容錯移轉叢集實例 (不同子網上的 FCI) ,則設定 MultiSubnetFailover=true 可提供目前) 作用中伺服器 (的更快速偵測和連線。 如需 Always On 功能之 SqlClient 支援的詳細資訊,請參閱高可用性、災害復原的 SqlClient 支援

NetworkLibrary

取得或設定字串,其中包含用於建立 SQL Server 連接的網路程式庫名稱。

PacketSize

取得或設定用於與 SQL Server 執行個體通訊的網路封包大小 (以位元組為單位)。

Password

取得或設定 SQL Server 帳戶的密碼。

PersistSecurityInfo

取得或設定值,指出是否應該在連線處於開啟狀態之後,在連線上以這個 SqlConnectionStringBuilder 建立的連接字串傳回安全性敏感性資訊,例如密碼或存取權杖。

PoolBlockingPeriod

連接集區封鎖期間的行為。

Pooling

取得或設定布林值,指出每次要求連接時,是要緩衝處理連接還是明確開啟連接。

Replication

取得或設定布林值,指出使用連接是否支援複寫。

TransactionBinding

取得或設定字串值,表示連接如何維護與已登記之 System.Transactions 交易的關聯。

TransparentNetworkIPResolution

當此索引鍵的值設定為 true 時,應用程式必須擷取特定 DNS 項目的所有 IP 位址,並嘗試連線至清單上的第一個項目。 如果無法在 0.5 秒內建立連線,應用程式將會嘗試同時連線至所有其他項目。 在連線被接聽之後,應用程式便會與回應者的 IP 位址建立連線。

TrustServerCertificate

取得或設定值,指出通道是否會加密,同時略過驗證信任的憑證鏈結查核。

TypeSystemVersion

取得或設定字串值,表示應用程式預期的型別系統。

UserID

取得或設定連接至 SQL Server 時要使用的使用者 ID。

UserInstance

取得或設定值,指出是否將連接從預設 SQL Server Express 執行個體,重新導向在呼叫端帳戶下執行之執行階段啟始的執行個體。

Values

取得包含 ICollection 中之值的 SqlConnectionStringBuilder

WorkstationID

取得或設定連接至 SQL Server 的工作站名稱。

方法

Add(String, Object)

將有指定索引鍵和數值項目加入 DbConnectionStringBuilder 中。

(繼承來源 DbConnectionStringBuilder)
Clear()

清除 SqlConnectionStringBuilder 執行個體的內容。

ClearPropertyDescriptors()

清除在相關聯 DbConnectionStringBuilder 上的 PropertyDescriptor 物件集合。

(繼承來源 DbConnectionStringBuilder)
ContainsKey(String)

判斷 SqlConnectionStringBuilder 是否包含特定索引鍵。

Equals(Object)

判斷指定的物件是否等於目前的物件。

(繼承來源 Object)
EquivalentTo(DbConnectionStringBuilder)

比較在這個 DbConnectionStringBuilder 物件中的連接資訊和提供之物件中的連接資訊。

(繼承來源 DbConnectionStringBuilder)
GetHashCode()

做為預設雜湊函式。

(繼承來源 Object)
GetProperties(Hashtable)

以這個 DbConnectionStringBuilder 之所有屬性的相關資訊填滿提供的 Hashtable

(繼承來源 DbConnectionStringBuilder)
GetType()

取得目前執行個體的 Type

(繼承來源 Object)
MemberwiseClone()

建立目前 Object 的淺層複製。

(繼承來源 Object)
Remove(String)

SqlConnectionStringBuilder 執行個體移除具有指定之索引鍵的項目。

ShouldSerialize(String)

指出這個 SqlConnectionStringBuilder 執行個體中,是否存在指定的索引鍵。

ToString()

傳回與這個 DbConnectionStringBuilder 相關聯的連接字串。

(繼承來源 DbConnectionStringBuilder)
TryGetValue(String, Object)

從這個 SqlConnectionStringBuilder 擷取對應到所提供之索引鍵的值。

明確介面實作

ICollection.CopyTo(Array, Int32)

從特定的 ICollection 索引開始,將 Array 的項目複製到 Array

(繼承來源 DbConnectionStringBuilder)
ICollection.IsSynchronized

取得值,這個值表示對 ICollection 的存取是否同步 (安全執行緒)。

(繼承來源 DbConnectionStringBuilder)
ICollection.SyncRoot

取得可用以同步存取 ICollection 的物件。

(繼承來源 DbConnectionStringBuilder)
ICustomTypeDescriptor.GetAttributes()

傳回元件之這個執行個體的自訂屬性集合。

(繼承來源 DbConnectionStringBuilder)
ICustomTypeDescriptor.GetClassName()

傳回這個元件執行個體的類別名稱。

(繼承來源 DbConnectionStringBuilder)
ICustomTypeDescriptor.GetComponentName()

傳回這個元件執行個體的名稱。

(繼承來源 DbConnectionStringBuilder)
ICustomTypeDescriptor.GetConverter()

傳回這個元件執行個體的類型轉換子。

(繼承來源 DbConnectionStringBuilder)
ICustomTypeDescriptor.GetDefaultEvent()

傳回這個元件執行個體的預設事件。

(繼承來源 DbConnectionStringBuilder)
ICustomTypeDescriptor.GetDefaultProperty()

傳回這個元件執行個體的屬性。

(繼承來源 DbConnectionStringBuilder)
ICustomTypeDescriptor.GetEditor(Type)

傳回元件的這個執行個體之指定類型編輯器。

(繼承來源 DbConnectionStringBuilder)
ICustomTypeDescriptor.GetEvents()

傳回這個元件執行個體的事件。

(繼承來源 DbConnectionStringBuilder)
ICustomTypeDescriptor.GetEvents(Attribute[])

使用指定屬性陣列做為篩選條件傳回元件之執行個體的事件。

(繼承來源 DbConnectionStringBuilder)
ICustomTypeDescriptor.GetProperties()

傳回元件之這個執行個體的屬性。

(繼承來源 DbConnectionStringBuilder)
ICustomTypeDescriptor.GetProperties(Attribute[])

使用屬性陣列做為篩選條件,傳回這個元件執行個體的屬性。

(繼承來源 DbConnectionStringBuilder)
ICustomTypeDescriptor.GetPropertyOwner(PropertyDescriptor)

傳回物件,包含指定的屬性描述項所描述的屬性。

(繼承來源 DbConnectionStringBuilder)
IDictionary.Add(Object, Object)

將隨附有索引鍵和值的項目加入至 IDictionary 物件。

(繼承來源 DbConnectionStringBuilder)
IDictionary.Contains(Object)

判斷 IDictionary 物件是否包含具有指定索引鍵的項目。

(繼承來源 DbConnectionStringBuilder)
IDictionary.GetEnumerator()

傳回 IDictionary 物件的 IDictionaryEnumerator 物件。

(繼承來源 DbConnectionStringBuilder)
IDictionary.IsFixedSize

取得值,指出 IDictionary 物件是否具有固定的大小。

(繼承來源 DbConnectionStringBuilder)
IDictionary.IsReadOnly

取得值,指出 IDictionary 是否唯讀。

(繼承來源 DbConnectionStringBuilder)
IDictionary.Item[Object]

取得或設定具有指定索引鍵的項目。

(繼承來源 DbConnectionStringBuilder)
IDictionary.Remove(Object)

IDictionary 物件中移除具有指定索引鍵的項目。

(繼承來源 DbConnectionStringBuilder)
IEnumerable.GetEnumerator()

傳回逐一查看集合的列舉值。

(繼承來源 DbConnectionStringBuilder)

擴充方法

Cast<TResult>(IEnumerable)

IEnumerable 的項目轉換成指定的型別。

OfType<TResult>(IEnumerable)

根據指定的型別來篩選 IEnumerable 的項目。

AsParallel(IEnumerable)

啟用查詢的平行化作業。

AsQueryable(IEnumerable)

IEnumerable 轉換成 IQueryable

適用於

另請參閱