DbConnectionStringBuilder 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
提供強型別連接字串產生器的基類。
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 類別提供基類,而強型別連接字串產生器(SqlConnectionStringBuilder、OleDbConnectionStringBuilder等等)衍生自此基類。 連接字串產生器可讓開發人員以程式設計方式建立語法正確的連接字串,並剖析和重建現有的連接字串。
DbConnectionStringBuilder 是以資料庫無關的方式定義。 由於新增 System.Data.Common 命名空間,開發人員需要基類,他們可以針對該基類進行程序設計,以建置可針對任意資料庫運作的連接字串。 因此,DbConnectionStringBuilder 類別可讓使用者指派任意索引鍵/值組,並將產生的連接字串傳遞至強型別提供者。 包含在 .NET 中的所有資料提供者都會提供繼承自 DbConnectionStringBuilder的強型別類別:SqlConnectionStringBuilder、OracleConnectionStringBuilder、OdbcConnectionStringBuilder和 OleDbConnectionStringBuilder。
您可以建置、指派及編輯任何任意提供者的連接字串。 對於支援特定索引鍵/值組的提供者,連接字串產生器會提供對應至已知配對的強型別屬性。 對於需要支援未知值的提供者,您也可以提供任意索引鍵/值組。
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中的值。 |
方法
明確介面實作
擴充方法
Cast<TResult>(IEnumerable) |
將 IEnumerable 的項目轉換成指定的型別。 |
OfType<TResult>(IEnumerable) |
根據指定的型別篩選 IEnumerable 的專案。 |
AsParallel(IEnumerable) |
啟用查詢的平行處理。 |
AsQueryable(IEnumerable) |
將 IEnumerable 轉換成 IQueryable。 |
適用於
另請參閱
- ADO.NET中的
連接字串 - ADO.NET 概觀