OdbcConnectionStringBuilder 類別

定義

提供簡單的方法,以建立和管理 OdbcConnection 類別使用之連接字串的內容。

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

範例

下列主控台應用程式會建置數個 ODBC 資料庫的連接字串。 首先,此範例會建立 Microsoft Access 資料庫的 連接字串。 然後,它會為IBM DB2 資料庫建立 連接字串。 此範例也會剖析現有的 連接字串,並示範各種操作 連接字串 內容的方式。

注意

這個範例包含了密碼,可示範 OdbcConnectionStringBuilder 如何搭配連接字串使用。 我們建議在您的應用程式中使用 Windows 驗證。 如果您必須使用密碼,請勿在您的應用程式中包含硬式編碼的密碼。

using System.Data.Odbc;

class Program
{
    static void Main()
    {
        OdbcConnectionStringBuilder builder =
            new OdbcConnectionStringBuilder();
        builder.Driver = "Microsoft Access Driver (*.mdb)";

        // Call the Add method to explicitly add key/value
        // pairs to the internal collection.
        builder.Add("Dbq", "C:\\info.mdb");
        builder.Add("Uid", "Admin");
        builder.Add("Pwd", "pass!word1");

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

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

        // Pass the OdbcConnectionStringBuilder an existing
        // connection string, and you can retrieve and
        // modify any of the elements.
        builder.ConnectionString =
            "driver={IBM DB2 ODBC DRIVER};Database=SampleDB;" +
            "hostname=SampleServerName;port=SamplePortNum;" +
            "protocol=TCPIP;uid=Admin;pwd=pass!word1";

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

        // Modify existing items.
        builder["uid"] = "NewUser";
        builder["pwd"] = "Pass@word2";

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

        // 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 associated value, if
        // necessary.
        builder["NewKey"] = "newValue";
        Console.WriteLine(builder.ConnectionString);

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

Module Module1
  Sub Main()
    Dim builder As New OdbcConnectionStringBuilder()
    builder.Driver = "Microsoft Access Driver (*.mdb)"

    ' Call the Add method to explicitly add key/value
    ' pairs to the internal collection.
    builder.Add("Dbq", "C:\info.mdb")
    builder.Add("Uid", "Admin")
    builder.Add("Pwd", "pass!word1")

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

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

    ' Pass the OdbcConnectionStringBuilder an existing 
    ' connection string, and you can retrieve and
    ' modify any of the elements.
    builder.ConnectionString = _
        "driver={IBM DB2 ODBC DRIVER};Database=SampleDB;" & _
        "hostname=SampleServerName;port=SamplePortNum;" & _
        "protocol=TCPIP;uid=Admin;pwd=pass!word1"

    Console.WriteLine("protocol = " & builder("protocol").ToString())
    Console.WriteLine()

    ' Modify existing items:
    builder("uid") = "NewUser"
    builder("pwd") = "Pass@word2"

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

    ' 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("NewKey") = "newValue"
    Console.WriteLine(builder.ConnectionString)

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

備註

連接字串 產生器可讓開發人員使用 類別的屬性和方法,以程式設計方式建立語法正確的連接字串,以及剖析和重建現有的連接字串。 連接字串 產生器提供強型別屬性,對應至 ODBC 連接所允許的已知索引鍵/值組,而開發人員可以為任何其他 連接字串 值新增任意索引鍵/值組。

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

Key 屬性 註解 預設值
驅動程式 Driver 開發人員在設定 Driver 屬性時,不應該包含驅動程式名稱周圍的大括弧。 實例 OdbcConnectionStringBuilder 會視需要新增大括號。 空字串
DSN Dsn 空字串

如果 連接字串 內值 () Driver 以外的任何值包含分號 (;) ,則會OdbcConnectionStringBuilder以引號括住值 連接字串。 為了避免經常包含分號的值發生此問題 DriverOdbcConnectionStringBuilder 類別一律會以大括弧括住此值。 ODBC 規格指出包含分號的驅動程式值必須以大括弧括住,而且這個類別會為您處理這個值。

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

Dim builder As _
 New System.Data.Odbc.OdbcConnectionStringBuilder
' Take advantage of the Driver property.
builder.Driver = "SQL Server"
builder("Server") = "MyServer;NewValue=Bad"
Console.WriteLine(builder.ConnectionString)
System.Data.Odbc.OdbcConnectionStringBuilder builder =
  new System.Data.Odbc.OdbcConnectionStringBuilder();
// Take advantage of the Driver property.
builder.Driver = "SQL Server";
builder["Server"] = "MyServer;NewValue=Bad";
Console.WriteLine(builder.ConnectionString);

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

Driver={SQL Server};Server="MyServer;NewValue=Bad"

建構函式

OdbcConnectionStringBuilder()

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

OdbcConnectionStringBuilder(String)

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

屬性

BrowsableConnectionString

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

(繼承來源 DbConnectionStringBuilder)
ConnectionString

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

(繼承來源 DbConnectionStringBuilder)
Count

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

(繼承來源 DbConnectionStringBuilder)
Driver

取得或設定與連接相關聯的 ODBC 驅動程式名稱。

Dsn

取得或設定與連接相關聯之資料來源名稱 (Data Source Name,DSN) 的名稱。

IsFixedSize

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

(繼承來源 DbConnectionStringBuilder)
IsReadOnly

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

(繼承來源 DbConnectionStringBuilder)
Item[String]

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

Keys

取得 ICollection 中包含索引鍵的 OdbcConnectionStringBuilder

Values

取得包含 ICollection 中之值的 DbConnectionStringBuilder

(繼承來源 DbConnectionStringBuilder)

方法

Add(String, Object)

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

(繼承來源 DbConnectionStringBuilder)
Clear()

清除 OdbcConnectionStringBuilder 執行個體的內容。

ClearPropertyDescriptors()

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

(繼承來源 DbConnectionStringBuilder)
ContainsKey(String)

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

Equals(Object)

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

(繼承來源 Object)
EquivalentTo(DbConnectionStringBuilder)

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

(繼承來源 DbConnectionStringBuilder)
GetHashCode()

做為預設雜湊函式。

(繼承來源 Object)
GetProperties(Hashtable)

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

(繼承來源 DbConnectionStringBuilder)
GetType()

取得目前執行個體的 Type

(繼承來源 Object)
MemberwiseClone()

建立目前 Object 的淺層複製。

(繼承來源 Object)
Remove(String)

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

ShouldSerialize(String)

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

(繼承來源 DbConnectionStringBuilder)
ToString()

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

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

從這個 OdbcConnectionStringBuilder 擷取對應到所提供之索引鍵的值。

明確介面實作

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

適用於

另請參閱