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 資料庫的連接字串。 此範例也會剖析現有的連接字串,並示範各種操作連接字串內容的方式。

注意

這個範例包含了密碼,可示範 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 = _
        "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()

    ' 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

備註

連接字串產生器 (Builder) 可讓開發人員使用類別的屬性和方法,以程式設計方式建立語法正確的連接字串,以及剖析和重建現有的連接字串。 連接字串產生器提供與 OLE DB 連接所允許之已知索引鍵/值組對應的強型別屬性,而開發人員可以新增任何其他連接字串值的任意索引鍵/值組。 OleDbConnectionStringBuilder 類別會實作 ICustomTypeDescriptor 介面。 這表示類別在設計階段與 Visual Studio .NET 設計工具搭配運作。 當開發人員使用設計工具在 Visual Studio .NET 內建置強型別資料集和強型別連接時,強型別連接字串產生器類別會顯示與其類型相關聯的屬性,而且也會有可對應已知索引鍵通用值的轉換器。

必須建立連接字串做為應用程式一部分的開發人員可以使用 OleDbConnectionStringBuilder 類別來建置及修改連接字串。 此類別也可讓您輕鬆管理儲存在應用程式組態檔內的連接字串。 只會 OleDbConnectionStringBuilder 針對一組有限的已知索引鍵/值組執行檢查。 因此,這個類別可用來建立不正確連接字串。 下表列出已知索引鍵及其在 類別內的 OleDbConnectionStringBuilder 對應屬性,以及其預設值。 除了這些特定值之外,開發人員可以將任何索引鍵/值組新增至 實例中包含的 OleDbConnectionStringBuilder 集合:

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

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

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"

建構函式

OleDbConnectionStringBuilder()

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

OleDbConnectionStringBuilder(String)

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

屬性

BrowsableConnectionString

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

(繼承來源 DbConnectionStringBuilder)
ConnectionString

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

(繼承來源 DbConnectionStringBuilder)
Count

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

(繼承來源 DbConnectionStringBuilder)
DataSource

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

FileName

取得或設定用來連接到資料來源的 Universal Data Link (UDL) 檔案名稱。

IsFixedSize

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

(繼承來源 DbConnectionStringBuilder)
IsReadOnly

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

(繼承來源 DbConnectionStringBuilder)
Item[String]

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

Keys

取得 ICollection 中包含索引鍵的 OleDbConnectionStringBuilder

OleDbServices

取得或設定要傳遞的值,對象為連接字串內的 OLE DB 服務索引鍵。

PersistSecurityInfo

取得或設定布林 (Boolean) 值,指示如果連接開啟或曾經處於開啟狀態,是否會將安全性相關資訊 (如密碼) 當做連接的一部分傳回。

Provider

取得或設定字串,此字串包含與內部連接字串關聯的資料提供者 (Data Provider) 名稱。

Values

取得包含 ICollection 中之值的 DbConnectionStringBuilder

(繼承來源 DbConnectionStringBuilder)

方法

Add(String, Object)

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

(繼承來源 DbConnectionStringBuilder)
Clear()

清除 OleDbConnectionStringBuilder 執行個體的內容。

ClearPropertyDescriptors()

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

(繼承來源 DbConnectionStringBuilder)
ContainsKey(String)

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

Equals(Object)

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

(繼承來源 Object)
EquivalentTo(DbConnectionStringBuilder)

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

(繼承來源 DbConnectionStringBuilder)
GetHashCode()

做為預設雜湊函式。

(繼承來源 Object)
GetProperties(Hashtable)

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

(繼承來源 DbConnectionStringBuilder)
GetType()

取得目前執行個體的 Type

(繼承來源 Object)
MemberwiseClone()

建立目前 Object 的淺層複製。

(繼承來源 Object)
Remove(String)

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

ShouldSerialize(String)

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

(繼承來源 DbConnectionStringBuilder)
ToString()

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

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

OleDbConnectionStringBuilder 執行個體擷取對應至所提供索引鍵的值。

明確介面實作

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.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

適用於

另請參閱