DbConnectionStringBuilder 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
为强类型连接字符串生成器提供基类。
public ref class DbConnectionStringBuilder : System::Collections::IDictionary
public ref class DbConnectionStringBuilder : System::Collections::IDictionary, System::ComponentModel::ICustomTypeDescriptor
public class DbConnectionStringBuilder : System.Collections.IDictionary
public class DbConnectionStringBuilder : System.Collections.IDictionary, System.ComponentModel.ICustomTypeDescriptor
type DbConnectionStringBuilder = class
interface ICollection
interface IEnumerable
interface IDictionary
type DbConnectionStringBuilder = class
interface ICollection
interface IEnumerable
interface IDictionary
interface ICustomTypeDescriptor
type DbConnectionStringBuilder = class
interface IDictionary
interface ICollection
interface IEnumerable
interface ICustomTypeDescriptor
Public Class DbConnectionStringBuilder
Implements IDictionary
Public Class DbConnectionStringBuilder
Implements ICustomTypeDescriptor, IDictionary
- 继承
-
DbConnectionStringBuilder
- 派生
- 实现
示例
以下控制台应用程序生成两个连接字符串,一个用于 Microsoft Jet 数据库,一个用于 SQL Server 数据库。 在每个情况下,该代码都使用泛型 DbConnectionStringBuilder 类来创建连接字符串,然后将 DbConnectionStringBuilder 实例的 ConnectionString 属性传递给强类型连接类的构造函数。 这不是必需的;该代码还可以创建单个强类型连接字符串生成器实例。 该示例还分析现有连接字符串,并演示了各种操作连接字符串的内容的方法。
DbConnectionStringBuilder builder =
new DbConnectionStringBuilder();
builder.ConnectionString = @"Data Source=c:\MyData\MyDb.mdb";
builder.Add("Provider", "Microsoft.Jet.Oledb.4.0");
// Set up row-level locking.
builder.Add("Jet OLEDB:Database Locking Mode", 1);
// The DbConnectionStringBuilder class
// is database agnostic, so it's possible to
// build any type of connection string using
// this class.
// The ConnectionString property might have been
// formatted by the DbConnectionStringBuilder class.
OleDbConnection oledbConnect = new
OleDbConnection(builder.ConnectionString);
Console.WriteLine(oledbConnect.ConnectionString);
// Use the same DbConnectionStringBuilder to create
// a SqlConnection object.
builder.Clear();
builder.Add("integrated security", true);
builder.Add("Initial Catalog", "AdventureWorks");
builder.Add("Data Source", "(local)");
SqlConnection sqlConnect = new
SqlConnection(builder.ConnectionString);
Console.WriteLine(sqlConnect.ConnectionString);
// Pass the DbConnectionStringBuilder an existing
// connection string, and you can retrieve and
// modify any of the elements.
builder.ConnectionString = "server=(local);initial catalog=AdventureWorks";
builder["Server"] = ".";
// Setting the indexer adds the value, if necessary.
builder["Integrated Security"] = true;
Console.WriteLine(builder.ConnectionString);
Sub Main()
Dim builder As New DbConnectionStringBuilder()
builder.ConnectionString = "Data Source=c:\MyData\MyDb.mdb"
builder.Add("Provider", "Microsoft.Jet.Oledb.4.0")
' Set up row-level locking.
builder.Add("Jet OLEDB:Database Locking Mode", 1)
' Note that the DbConnectionStringBuilder class
' is database agnostic, and it's possible to
' build any type of connection string using
' this class.
' Notice that the ConnectionString property may have been
' formatted by the DbConnectionStringBuilder class.
Dim oledbConnect As New _
OleDbConnection(builder.ConnectionString)
Console.WriteLine(oledbConnect.ConnectionString)
' Use the same DbConnectionStringBuilder to create
' a SqlConnection object.
builder.Clear()
builder.Add("integrated security", True)
builder.Add("Initial Catalog", "AdventureWorks")
builder.Add("Data Source", "(local)")
Dim sqlConnect As New SqlConnection(builder.ConnectionString)
Console.WriteLine(sqlConnect.ConnectionString)
' Pass the DbConnectionStringBuilder an existing
' connection string, and you can retrieve and
' modify any of the elements.
builder.ConnectionString = "server=(local);initial catalog=AdventureWorks"
builder.Item("Server") = "."
' The Item property is the default for the class,
' and setting the Item property adds the value if
' necessary.
builder("Integrated Security") = True
Console.WriteLine(builder.ConnectionString)
Console.WriteLine("Press Enter to finish.")
Console.ReadLine()
End Sub
注解
DbConnectionStringBuilder 类提供强类型连接字符串生成器(SqlConnectionStringBuilder、OleDbConnectionStringBuilder等)派生的基类。 连接字符串生成器允许开发人员以编程方式创建语法正确的连接字符串,并分析和重新生成现有连接字符串。
DbConnectionStringBuilder 以与数据库无关的方式定义。 由于添加了 System.Data.Common 命名空间,开发人员需要一个基类,他们可以针对该基类进行编程,以便生成可用于任意数据库的连接字符串。 因此,DbConnectionStringBuilder 类允许用户分配任意键/值对,并将生成的连接字符串传递给强类型提供程序。 作为 .NET 的一部分包含的所有数据提供程序都提供一个强类型类,该类继承自 DbConnectionStringBuilder:SqlConnectionStringBuilder、OracleConnectionStringBuilder、OdbcConnectionStringBuilder和 OleDbConnectionStringBuilder。
可以为任何任意提供程序生成、分配和编辑连接字符串。 对于支持特定键/值对的提供程序,连接字符串生成器提供与已知对对应的强类型属性。 对于需要支持未知值的提供程序,还可以提供任意键/值对。
DbConnectionStringBuilder 类实现 ICustomTypeDescriptor 接口。 这意味着该类在设计时适用于 Visual Studio 设计器。 当开发人员使用设计器在 Visual Studio 中生成强类型数据集和强类型连接时,强类型连接字符串生成器类将显示与其类型关联的属性,并且还具有可映射已知键的常见值的转换器。
如果需要在应用程序中创建连接字符串,请使用 DbConnectionStringBuilder 类或其强类型派生之一来生成和修改连接字符串。 DbConnectionStringBuilder 类还可以轻松地管理存储在应用程序配置文件中的连接字符串。
可以使用强类型连接字符串生成器类或 DbConnectionStringBuilder 类创建连接字符串。 DbConnectionStringBuilder 不对有效的键/值对执行检查。 因此,使用此类时,可以创建无效的连接字符串。 SqlConnectionStringBuilder 仅支持 SQL Server 支持的键/值对;尝试添加无效对将引发异常。
Add 方法和 Item[] 属性都处理错误执行组件尝试插入恶意条目的情况。 例如,以下代码正确转义嵌套键/值对:
Dim builder As New System.Data.Common.DbConnectionStringBuilder
builder("Data Source") = "(local)"
builder("integrated sSecurity") = True
builder("Initial Catalog") = "AdventureWorks;NewValue=Bad"
System.Data.Common.DbConnectionStringBuilder builder = new System.Data.Common.DbConnectionStringBuilder();
builder["Data Source"] = "(local)";
builder["integrated Security"] = true;
builder["Initial Catalog"] = "AdventureWorks;NewValue=Bad";
结果是以下连接字符串,以安全方式处理无效值:
data source=(local);integrated security=True;
initial catalog="AdventureWorks;NewValue=Bad"
构造函数
DbConnectionStringBuilder() |
初始化 DbConnectionStringBuilder 类的新实例。 |
DbConnectionStringBuilder(Boolean) |
初始化 DbConnectionStringBuilder 类的新实例,可以选择使用 ODBC 规则来引用值。 |
属性
BrowsableConnectionString |
获取或设置一个值,该值指示 ConnectionString 属性在 Visual Studio 设计器中是否可见。 |
ConnectionString |
获取或设置与 DbConnectionStringBuilder关联的连接字符串。 |
Count |
获取 ConnectionString 属性中包含的当前键数。 |
IsFixedSize |
获取一个值,该值指示 DbConnectionStringBuilder 是否具有固定大小。 |
IsReadOnly |
获取一个值,该值指示 DbConnectionStringBuilder 是否为只读。 |
Item[String] |
获取或设置与指定键关联的值。 |
Keys |
获取一个 ICollection,其中包含 DbConnectionStringBuilder中的键。 |
Values |
获取一个 ICollection,其中包含 DbConnectionStringBuilder中的值。 |
方法
显式接口实现
扩展方法
Cast<TResult>(IEnumerable) |
将 IEnumerable 的元素强制转换为指定类型。 |
OfType<TResult>(IEnumerable) |
根据指定类型筛选 IEnumerable 的元素。 |
AsParallel(IEnumerable) |
启用查询的并行化。 |
AsQueryable(IEnumerable) |
将 IEnumerable 转换为 IQueryable。 |
适用于
另请参阅
- 在 ADO.NET 中
连接字符串 - ADO.NET 概述