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 IDictionary
    interface ICollection
    interface IEnumerable
    interface ICustomTypeDescriptor
type DbConnectionStringBuilder = class
    interface ICollection
    interface IEnumerable
    interface IDictionary
    interface ICustomTypeDescriptor
Public Class DbConnectionStringBuilder
Implements IDictionary
Public Class DbConnectionStringBuilder
Implements ICustomTypeDescriptor, IDictionary
繼承
DbConnectionStringBuilder
衍生
實作

範例

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

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"

建構函式

名稱 Description
DbConnectionStringBuilder()

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

DbConnectionStringBuilder(Boolean)

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

屬性

名稱 Description
BrowsableConnectionString

取得或設定一個值,指示 ConnectionString 屬性是否在 Visual Studio 設計器中可見。

ConnectionString

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

Count

取得該屬性中目前包含 ConnectionString 的鍵數。

IsFixedSize

會得到一個表示是否 DbConnectionStringBuilder 固定大小的值。

IsReadOnly

會得到一個值,表示 是否 DbConnectionStringBuilder 為唯讀。

Item[String]

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

Keys

得到 ICollection 一個包含 DbConnectionStringBuilder鍵的 。

Values

得到 ICollection 包含 的 DbConnectionStringBuilder值的 。

方法

名稱 Description
Add(String, Object)

將指定鍵與值的條目加入 DbConnectionStringBuilder

AppendKeyValuePair(StringBuilder, String, String, Boolean)

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

AppendKeyValuePair(StringBuilder, String, String)

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

Clear()

清除實例內容 DbConnectionStringBuilder

ClearPropertyDescriptors()

清除對應PropertyDescriptor物件集合DbConnectionStringBuilder

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中取得對應所提供金鑰的值。

明確介面實作

名稱 Description
ICollection.CopyTo(Array, Int32)

從特定 ICollection 索引開始,將 Array 的專案複製到 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()

回傳IDictionaryEnumerator一個物件。IDictionary

IDictionary.IsFixedSize

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

IDictionary.IsReadOnly

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

IDictionary.Item[Object]

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

IDictionary.Remove(Object)

從物件中移除指定鍵的 IDictionary 元素。

IEnumerable.GetEnumerator()

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

擴充方法

名稱 Description
AsParallel(IEnumerable)

啟用查詢的平行處理。

AsQueryable(IEnumerable)

IEnumerable 轉換成 IQueryable

Cast<TResult>(IEnumerable)

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

OfType<TResult>(IEnumerable)

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

適用於

另請參閱