共用方式為


DbConnectionStringBuilder 類別

定義

提供強型別連接字串產生器的基類。

public ref class DbConnectionStringBuilder : System::Collections::IDictionary
public ref class DbConnectionStringBuilder : System::Collections::IDictionary, System::ComponentModel::ICustomTypeDescriptor
public class DbConnectionStringBuilder : System.Collections.IDictionary
public class DbConnectionStringBuilder : System.Collections.IDictionary, System.ComponentModel.ICustomTypeDescriptor
type DbConnectionStringBuilder = class
    interface ICollection
    interface IEnumerable
    interface IDictionary
type DbConnectionStringBuilder = class
    interface ICollection
    interface IEnumerable
    interface IDictionary
    interface ICustomTypeDescriptor
type DbConnectionStringBuilder = class
    interface IDictionary
    interface ICollection
    interface IEnumerable
    interface ICustomTypeDescriptor
Public Class DbConnectionStringBuilder
Implements IDictionary
Public Class DbConnectionStringBuilder
Implements ICustomTypeDescriptor, IDictionary
繼承
DbConnectionStringBuilder
衍生
實作

範例

下列主控台應用程式會建置兩個連接字串,一個用於 Microsoft Jet 資料庫,另一個用於 SQL Server 資料庫。 在每個案例中,程式代碼都會使用泛型 DbConnectionStringBuilder 類別來建立連接字串,然後將 DbConnectionStringBuilder 實例的 ConnectionString 屬性傳遞至強型別連接類別的建構函式。 這不是必要的;程序代碼也可以建立個別強型別連接字串產生器實例。 此範例也會剖析現有的連接字串,並示範各種操作連接字串內容的方式。

DbConnectionStringBuilder builder =
    new DbConnectionStringBuilder();
builder.ConnectionString = @"Data Source=c:\MyData\MyDb.mdb";
builder.Add("Provider", "Microsoft.Jet.Oledb.4.0");
// Set up row-level locking.
builder.Add("Jet OLEDB:Database Locking Mode", 1);

// The DbConnectionStringBuilder class
// is database agnostic, so it's possible to
// build any type of connection string using
// this class.

// The ConnectionString property might have been
// formatted by the DbConnectionStringBuilder class.
OleDbConnection oledbConnect = new
    OleDbConnection(builder.ConnectionString);
Console.WriteLine(oledbConnect.ConnectionString);

// Use the same DbConnectionStringBuilder to create
// a SqlConnection object.
builder.Clear();
builder.Add("integrated security", true);
builder.Add("Initial Catalog", "AdventureWorks");
builder.Add("Data Source", "(local)");

SqlConnection sqlConnect = new
    SqlConnection(builder.ConnectionString);
Console.WriteLine(sqlConnect.ConnectionString);

// Pass the DbConnectionStringBuilder an existing
// connection string, and you can retrieve and
// modify any of the elements.
builder.ConnectionString = "server=(local);initial catalog=AdventureWorks";
builder["Server"] = ".";

// Setting the indexer adds the value, if necessary.
builder["Integrated Security"] = true;
Console.WriteLine(builder.ConnectionString);
Sub Main()
    Dim builder As New DbConnectionStringBuilder()
    builder.ConnectionString = "Data Source=c:\MyData\MyDb.mdb"
    builder.Add("Provider", "Microsoft.Jet.Oledb.4.0")

    ' Set up row-level locking.
    builder.Add("Jet OLEDB:Database Locking Mode", 1)

    ' Note that the DbConnectionStringBuilder class
    ' is database agnostic, and it's possible to
    ' build any type of connection string using
    ' this class.
    ' Notice that the ConnectionString property may have been
    ' formatted by the DbConnectionStringBuilder class.

    Dim oledbConnect As New _
        OleDbConnection(builder.ConnectionString)
    Console.WriteLine(oledbConnect.ConnectionString)

    ' Use the same DbConnectionStringBuilder to create
    ' a SqlConnection object.
    builder.Clear()
    builder.Add("integrated security", True)
    builder.Add("Initial Catalog", "AdventureWorks")
    builder.Add("Data Source", "(local)")

    Dim sqlConnect As New SqlConnection(builder.ConnectionString)
    Console.WriteLine(sqlConnect.ConnectionString)

    ' Pass the DbConnectionStringBuilder an existing
    ' connection string, and you can retrieve and
    ' modify any of the elements.
    builder.ConnectionString = "server=(local);initial catalog=AdventureWorks"
    builder.Item("Server") = "."

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

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

備註

DbConnectionStringBuilder 類別提供基類,而強型別連接字串產生器(SqlConnectionStringBuilderOleDbConnectionStringBuilder等等)衍生自此基類。 連接字串產生器可讓開發人員以程式設計方式建立語法正確的連接字串,並剖析和重建現有的連接字串。

DbConnectionStringBuilder 是以資料庫無關的方式定義。 由於新增 System.Data.Common 命名空間,開發人員需要基類,他們可以針對該基類進行程序設計,以建置可針對任意資料庫運作的連接字串。 因此,DbConnectionStringBuilder 類別可讓使用者指派任意索引鍵/值組,並將產生的連接字串傳遞至強型別提供者。 包含在 .NET 中的所有資料提供者都會提供繼承自 DbConnectionStringBuilder的強型別類別:SqlConnectionStringBuilderOracleConnectionStringBuilderOdbcConnectionStringBuilderOleDbConnectionStringBuilder

您可以建置、指派及編輯任何任意提供者的連接字串。 對於支援特定索引鍵/值組的提供者,連接字串產生器會提供對應至已知配對的強型別屬性。 對於需要支援未知值的提供者,您也可以提供任意索引鍵/值組。

DbConnectionStringBuilder 類別會實作 ICustomTypeDescriptor 介面。 這表示類別在設計時間與 Visual Studio 設計工具搭配運作。 當開發人員使用設計工具在 Visual Studio 中建置強型別的 DataSet 和強型別連接時,強型別連接字串產生器類別會顯示與其類型相關聯的屬性,而且具有可對應已知索引鍵通用值的轉換器。

如果您需要在應用程式中建立連接字串,請使用 DbConnectionStringBuilder 類別或其其中一個強型別衍生專案來建置和修改連接字元串。 DbConnectionStringBuilder 類別也可讓您輕鬆地管理儲存在應用程式組態檔中的連接字串。

您可以使用強型別連接字串產生器類別或 DbConnectionStringBuilder 類別來建立連接字串。 DbConnectionStringBuilder 不會對有效的索引鍵/值組執行任何檢查。 因此,使用這個類別時,可以建立無效的連接字串。 SqlConnectionStringBuilder 僅支援 SQL Server 支援的索引鍵/值組;嘗試新增無效的配對將會擲回例外狀況。

Add 方法和 Item[] 屬性會處理錯誤動作項目嘗試插入惡意項目的情況。 例如,下列程式代碼會正確地逸出巢狀索引鍵/值組:

Dim builder As New System.Data.Common.DbConnectionStringBuilder
builder("Data Source") = "(local)"
builder("integrated sSecurity") = True
builder("Initial Catalog") = "AdventureWorks;NewValue=Bad"
System.Data.Common.DbConnectionStringBuilder builder = new System.Data.Common.DbConnectionStringBuilder();
builder["Data Source"] = "(local)";
builder["integrated Security"] = true;
builder["Initial Catalog"] = "AdventureWorks;NewValue=Bad";

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

data source=(local);integrated security=True;
initial catalog="AdventureWorks;NewValue=Bad"

建構函式

DbConnectionStringBuilder()

初始化 DbConnectionStringBuilder 類別的新實例。

DbConnectionStringBuilder(Boolean)

初始化 DbConnectionStringBuilder 類別的新實例,選擇性地使用 ODBC 規則來引用值。

屬性

BrowsableConnectionString

取得或設定值,這個值表示Visual Studio設計工具中是否顯示 ConnectionString 屬性。

ConnectionString

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

Count

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

IsFixedSize

取得值,這個值表示 DbConnectionStringBuilder 是否有固定大小。

IsReadOnly

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

Item[String]

取得或設定與指定索引鍵相關聯的值。

Keys

取得 ICollection,其中包含 DbConnectionStringBuilder中的索引鍵。

Values

取得 ICollection,其中包含 DbConnectionStringBuilder中的值。

方法

Add(String, Object)

將具有指定索引鍵和值的專案加入至 DbConnectionStringBuilder

AppendKeyValuePair(StringBuilder, String, String, Boolean)

提供有效率且安全的方法,將索引鍵和值附加至現有的 StringBuilder 物件。

AppendKeyValuePair(StringBuilder, String, String)

提供有效率且安全的方法,將索引鍵和值附加至現有的 StringBuilder 物件。

Clear()

清除 DbConnectionStringBuilder 實例的內容。

ClearPropertyDescriptors()

清除相關聯 DbConnectionStringBuilderPropertyDescriptor 物件的集合。

ContainsKey(String)

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

Equals(Object)

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

(繼承來源 Object)
EquivalentTo(DbConnectionStringBuilder)

比較這個 DbConnectionStringBuilder 物件中的連接資訊與所提供物件中的連接資訊。

GetHashCode()

做為預設哈希函式。

(繼承來源 Object)
GetProperties(Hashtable)

填入提供的 Hashtable,其中包含此 DbConnectionStringBuilder之所有屬性的相關信息。

GetType()

取得目前實例的 Type

(繼承來源 Object)
MemberwiseClone()

建立目前 Object的淺層複本。

(繼承來源 Object)
Remove(String)

DbConnectionStringBuilder 實例中移除具有指定索引鍵的專案。

ShouldSerialize(String)

指出指定的索引鍵是否存在於這個 DbConnectionStringBuilder 實例中。

ToString()

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

TryGetValue(String, Object)

從這個 DbConnectionStringBuilder擷取對應至提供之索引鍵的值。

明確介面實作

ICollection.CopyTo(Array, Int32)

從特定 Array 索引開始,將 ICollection 的專案複製到 Array

ICollection.IsSynchronized

取得值,指出是否同步存取 ICollection (線程安全)。

ICollection.SyncRoot

取得對象,這個物件可用來同步存取 ICollection

ICustomTypeDescriptor.GetAttributes()

傳回這個元件實例的自定義屬性集合。

ICustomTypeDescriptor.GetClassName()

傳回元件之這個實例的類別名稱。

ICustomTypeDescriptor.GetComponentName()

傳回元件之這個實例的名稱。

ICustomTypeDescriptor.GetConverter()

傳回元件這個實例的類型轉換器。

ICustomTypeDescriptor.GetDefaultEvent()

傳回這個元件實例的預設事件。

ICustomTypeDescriptor.GetDefaultProperty()

傳回這個元件實例的預設屬性。

ICustomTypeDescriptor.GetEditor(Type)

傳回這個元件實例之指定型別的編輯器。

ICustomTypeDescriptor.GetEvents()

傳回元件這個實例的事件。

ICustomTypeDescriptor.GetEvents(Attribute[])

使用指定的屬性陣組做為篩選,傳回元件之這個實例的事件。

ICustomTypeDescriptor.GetProperties()

傳回元件之這個實例的屬性。

ICustomTypeDescriptor.GetProperties(Attribute[])

使用屬性陣組做為篩選,傳回元件實例的屬性。

ICustomTypeDescriptor.GetPropertyOwner(PropertyDescriptor)

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

IDictionary.Add(Object, Object)

將具有所提供索引鍵和值的專案加入至 IDictionary 物件。

IDictionary.Contains(Object)

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

IDictionary.GetEnumerator()

傳回 IDictionary 物件的 IDictionaryEnumerator 物件。

IDictionary.IsFixedSize

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

IDictionary.IsReadOnly

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

IDictionary.Item[Object]

取得或設定具有指定索引鍵的專案。

IDictionary.Remove(Object)

IDictionary 物件中移除具有指定索引鍵的專案。

IEnumerable.GetEnumerator()

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

擴充方法

Cast<TResult>(IEnumerable)

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

OfType<TResult>(IEnumerable)

根據指定的型別篩選 IEnumerable 的專案。

AsParallel(IEnumerable)

啟用查詢的平行處理。

AsQueryable(IEnumerable)

IEnumerable 轉換成 IQueryable

適用於

另請參閱