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

注解

通过连接字符串生成器,开发人员可以使用该类的属性和方法,以编程方式创建语法正确的连接字符串以及分析和重新生成现有的连接字符串。 连接字符串生成器提供与 OLE DB 连接允许的已知键/值对对应的强类型属性,开发人员可以为任何其他连接字符串值添加任意键/值对。 OleDbConnectionStringBuilder 类实现 ICustomTypeDescriptor 接口。 这意味着 类在设计时与 Visual Studio .NET 设计器一起使用。 当开发人员使用设计器在 Visual Studio .NET 中生成强类型数据集和强类型连接时,强类型连接字符串生成器类将显示与其类型关联的属性,并且还将具有可映射已知键的通用值的转换器。

需要在应用程序中创建连接字符串的开发人员可以使用 OleDbConnectionStringBuilder 类生成和修改连接字符串。 使用该类还可以轻松管理存储在应用程序配置文件中的连接字符串。 仅 OleDbConnectionStringBuilder 检查已知键/值对的有限集。 因此,此类可用于创建无效的连接字符串。 下表列出了 类中的 OleDbConnectionStringBuilder 已知键及其相应属性及其默认值。 除了这些特定值之外,开发人员还可以将任何键/值对添加到 实例中包含的集合:OleDbConnectionStringBuilder

properties 默认值
文件名 FileName ""
提供程序 Provider ""
数据源 DataSource ""
持久性安全信息 PersistSecurityInfo 错误
OLE DB 服务 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

获取或设置用于连接到数据源的通用数据链接 (UDL) 文件的名称。

IsFixedSize

获取一个值,该值指示 DbConnectionStringBuilder 是否具有固定大小。

(继承自 DbConnectionStringBuilder)
IsReadOnly

获取一个值,该值指示 DbConnectionStringBuilder 是否为只读。

(继承自 DbConnectionStringBuilder)
Item[String]

获取或设置与指定的键关联的值。 在 C# 中,此属性为索引器。

Keys

获取包含 ICollection 中的键的 OleDbConnectionStringBuilder

OleDbServices

获取或设置要为连接字符串内的 OLE DB Services 键传递的值。

PersistSecurityInfo

获取或设置一个布尔值,该值指示如果连接是打开的或者一直处于打开状态,那么安全敏感信息(如密码)是否作为连接的一部分返回。

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

适用于

另请参阅