OleDbConnectionStringBuilder 類別

定義

提供簡單的方法來建立和管理 OleDbConnection 類別所使用的連接字串內容。

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

範例

以下主控台應用程式為多個 OLE DB 資料庫建立連接字串。 首先,範例為 Microsoft Access 資料庫建立一個 連接字串,接著為 IBM DB2 資料庫建立一個 連接字串。 此範例也會剖析現有的連接字串,並示範各種操作連接字串內容的方式。

Note

這個範例包含密碼,用來示範如何 OleDbConnectionStringBuilder 處理連線字串。 我們建議您在應用程式中使用 Windows 認證。 如果必須使用密碼,請不要在申請中加入硬編碼密碼。

using System.Data.OleDb;

class Program
{
    static void Main(string[] args)
    {
        OleDbConnectionStringBuilder builder = new OleDbConnectionStringBuilder();
        builder.ConnectionString = @"Data Source=C:\Sample.mdb";

        // Call the Add method to explicitly add key/value
        // pairs to the internal collection.
        builder.Add("Provider", "Microsoft.Jet.Oledb.4.0");
        builder.Add("Jet OLEDB:Database Password", "MyPassword!");
        builder.Add("Jet OLEDB:System Database", @"C:\Workgroup.mdb");

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

        Console.WriteLine(builder.ConnectionString);
        Console.WriteLine();

        // Clear current values and reset known keys to their
        // default values.
        builder.Clear();

        // Pass the OleDbConnectionStringBuilder an existing
        // connection string, and you can retrieve and
        // modify any of the elements.
        builder.ConnectionString =
            "Provider=DB2OLEDB;Network Transport Library=TCPIP;" +
            "Network Address=192.168.0.12;Initial Catalog=DbAdventures;" +
            "Package Collection=SamplePackage;Default Schema=SampleSchema;";

        Console.WriteLine("Network Address = " + builder["Network Address"].ToString());
        Console.WriteLine();

        // Modify existing items.
        builder["Package Collection"] = "NewPackage";
        builder["Default Schema"] = "NewSchema";

        // Call the Remove method to remove items from
        // the collection of key/value pairs.
        builder.Remove("User ID");

        // Note that calling Remove on a nonexistent item does not
        // throw an exception.
        builder.Remove("BadItem");
        Console.WriteLine(builder.ConnectionString);
        Console.WriteLine();

        // Setting the indexer adds the value, if
        // necessary.
        builder["User ID"] = "SampleUser";
        builder["Password"] = "SamplePassword";
        Console.WriteLine(builder.ConnectionString);

        Console.WriteLine("Press Enter to finish.");
        Console.ReadLine();
    }
}
Imports System.Data.OleDb
Imports System.Collections

Module Module1
  Sub Main()
    Dim builder As New OleDbConnectionStringBuilder()
    builder.ConnectionString = "Data Source=C:\Sample.mdb"

    ' Call the Add method to explicitly add key/value
    ' pairs to the internal collection.
    builder.Add("Provider", "Microsoft.Jet.Oledb.4.0")
    builder.Add("Jet OLEDB:Database Password", "MyPassword!")
    builder.Add("Jet OLEDB:System Database", "C:\Workgroup.mdb")

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

    Console.WriteLine(builder.ConnectionString)
    Console.WriteLine()

    ' Clear current values and reset known keys to their
    ' default values.
    builder.Clear()

    ' Pass the OleDbConnectionStringBuilder an existing
    ' connection string, and you can retrieve and
    ' modify any of the elements.
    builder.ConnectionString = "..."

    Console.WriteLine("Network Address = " & builder("Network Address").ToString())
    Console.WriteLine()

    ' Modify existing items.
    builder("Package Collection") = "NewPackage"
    builder("Default Schema") = "NewSchema"

    ' Call the Remove method to remove items from
    ' the collection of key/value pairs.
    builder.Remove("User ID")

    ' Note that calling Remove on a nonexistent item does not
    ' throw an exception.
    builder.Remove("BadItem")
    Console.WriteLine(builder.ConnectionString)
    Console.WriteLine()

    ' The Item property is the default for the class,
    ' and setting the Item property adds the value, if
    ' necessary.
    builder("User ID") = "SampleUser"
    builder("Password") = "SamplePassword"
    Console.WriteLine(builder.ConnectionString)

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

備註

連接字串產生器可讓開發人員使用 類別的屬性和方法,以程式設計方式建立語法正確的連接字串,以及剖析和重建現有的連接字串。 連接字串 建構器提供強型別屬性,對應於 OLE DB 連線允許的已知鍵值對,開發者可為任何其他 連接字串 值加入任意鍵值對。 OleDbConnectionStringBuilder 類別會實作 ICustomTypeDescriptor 介面。 這表示課程在設計時會與Visual Studio .NET設計師合作。 當開發者使用 Designer 在 Visual Studio .NET 內建立強型別的 DataSets 與強型別的連接時,強型別的 連接字串 建構器類別會顯示其型別相關的屬性,並具備可映射已知鍵值的轉換器。

需要在應用程式中建立連接字串的開發者,可以使用此 OleDbConnectionStringBuilder 類別來建構和修改連接字串。 類別也可讓您輕鬆地管理儲存在應用程式組態檔中的連接字串。 它 OleDbConnectionStringBuilder 僅對有限的已知鍵值對進行檢查。 因此,這個類別可以用來建立無效的連接字串。 下表列出已知的鍵及其在類別中 OleDbConnectionStringBuilder 對應的屬性,以及它們的預設值。 除了這些特定值外,開發者還可以將任何鍵值對加入實例內 OleDbConnectionStringBuilder 的集合中:

Key Property 預設值
檔案名稱 FileName ""
提供者 Provider ""
資料來源 DataSource ""
保存安全性資訊 PersistSecurityInfo
OLE 資料庫服務 OleDbServices -13

Item[] 屬性會處理嘗試插入惡意專案。 例如,下列程式代碼會使用預設 Item[] 屬性(以 C# 表示索引器)正確地逸出巢狀索引鍵/值組:

Dim builder As _
    New System.Data.OleDb.OleDbConnectionStringBuilder
builder("Provider") = "Microsoft.Jet.OLEDB.4.0"
builder("Data Source") = "C:\Sample.mdb"
builder("User Id") = "Admin;NewValue=Bad"
System.Data.OleDb.OleDbConnectionStringBuilder builder =
    new System.Data.OleDb.OleDbConnectionStringBuilder();
builder["Provider"] = "Microsoft.Jet.OLEDB.4.0";
builder["Data Source"] = "C:\\Sample.mdb";
builder["User Id"] = "Admin;NewValue=Bad";

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

Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Sample.mdb;User ID="Admin;NewValue=Bad"

建構函式

名稱 Description
OleDbConnectionStringBuilder()

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

OleDbConnectionStringBuilder(String)

初始化 OleDbConnectionStringBuilder 類別的新執行個體。 提供的連接字串會提供實例內部連接信息的數據。

屬性

名稱 Description
BrowsableConnectionString

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

(繼承來源 DbConnectionStringBuilder)
ConnectionString

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

(繼承來源 DbConnectionStringBuilder)
Count

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

(繼承來源 DbConnectionStringBuilder)
DataSource

取得或設定要連接的資料來源名稱。

FileName

取得或設定通用資料連結(UDL)檔案名稱,以便連接資料來源。

IsFixedSize

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

(繼承來源 DbConnectionStringBuilder)
IsReadOnly

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

(繼承來源 DbConnectionStringBuilder)
Item[String]

取得或設定與指定鍵相關聯的值。 在 C# 中,這個屬性就是索引器。

Keys

得到 ICollection 一個包含 OleDbConnectionStringBuilder鍵的 。

OleDbServices

取得或設定連接字串中 OLE DB Services 鍵要傳遞的值。

PersistSecurityInfo

取得或設定一個布林值,指示若連線開啟或曾處於開放狀態,是否會回傳安全敏感資訊(如密碼)。

Provider

取得或設定包含與該內部連接字串關聯的資料提供者名稱的字串。

Values

得到 ICollection 包含 的 DbConnectionStringBuilder值的 。

(繼承來源 DbConnectionStringBuilder)

方法

名稱 Description
Add(String, Object)

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

(繼承來源 DbConnectionStringBuilder)
Clear()

清除實例內容 OleDbConnectionStringBuilder

ClearPropertyDescriptors()

清除對應PropertyDescriptor物件集合DbConnectionStringBuilder

(繼承來源 DbConnectionStringBuilder)
ContainsKey(String)

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

Equals(Object)

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

(繼承來源 Object)
EquivalentTo(DbConnectionStringBuilder)

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

(繼承來源 DbConnectionStringBuilder)
GetHashCode()

做為預設雜湊函式。

(繼承來源 Object)
GetProperties(Hashtable)

填滿 Hashtable 一個 ,包含所有關於此 DbConnectionStringBuilder特性的資訊。

(繼承來源 DbConnectionStringBuilder)
GetType()

取得目前實例的 Type

(繼承來源 Object)
MemberwiseClone()

建立目前 Object的淺層複本。

(繼承來源 Object)
Remove(String)

從實例中移除指定金鑰 OleDbConnectionStringBuilder 的條目。

ShouldSerialize(String)

表示該 DbConnectionStringBuilder 指定金鑰在此實例中是否存在。

(繼承來源 DbConnectionStringBuilder)
ToString()

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

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

從實例中擷取與所提供金鑰 OleDbConnectionStringBuilder 對應的值。

明確介面實作

名稱 Description
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()

回傳IDictionaryEnumerator一個物件。IDictionary

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

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

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

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

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

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

(繼承來源 DbConnectionStringBuilder)

擴充方法

名稱 Description
AsParallel(IEnumerable)

啟用查詢的平行處理。

AsQueryable(IEnumerable)

IEnumerable 轉換成 IQueryable

Cast<TResult>(IEnumerable)

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

OfType<TResult>(IEnumerable)

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

適用於

另請參閱