OleDbConnectionStringBuilder 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
提供簡單的方法來建立和管理 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
- 繼承
- 屬性
範例
以下主控台應用程式為多個 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 |
|---|---|
| AsParallel(IEnumerable) |
啟用查詢的平行處理。 |
| AsQueryable(IEnumerable) |
將 IEnumerable 轉換成 IQueryable。 |
| Cast<TResult>(IEnumerable) |
將 IEnumerable 的項目轉換成指定的型別。 |
| OfType<TResult>(IEnumerable) |
根據指定的型別篩選 IEnumerable 的專案。 |