SqlConnectionStringBuilder 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
提供一种创建和管理 SqlConnection 类使用的连接字符串内容的简单方法。
public ref class SqlConnectionStringBuilder sealed : System::Data::Common::DbConnectionStringBuilder
public sealed class SqlConnectionStringBuilder : System.Data.Common.DbConnectionStringBuilder
[System.ComponentModel.TypeConverter(typeof(System.Data.SqlClient.SqlConnectionStringBuilder+SqlConnectionStringBuilderConverter))]
public sealed class SqlConnectionStringBuilder : System.Data.Common.DbConnectionStringBuilder
type SqlConnectionStringBuilder = class
inherit DbConnectionStringBuilder
[<System.ComponentModel.TypeConverter(typeof(System.Data.SqlClient.SqlConnectionStringBuilder+SqlConnectionStringBuilderConverter))>]
type SqlConnectionStringBuilder = class
inherit DbConnectionStringBuilder
Public NotInheritable Class SqlConnectionStringBuilder
Inherits DbConnectionStringBuilder
- 继承
- 属性
示例
以下控制台应用程序为 SQL Server 数据库生成连接字符串。 该代码使用 SqlConnectionStringBuilder 类创建连接字符串。 然后,该示例分析连接字符串,并演示了操作其内容的各种方法。
// Create a new SqlConnectionStringBuilder and
// initialize it with a few name/value pairs.
SqlConnectionStringBuilder builder = new(
"Server=(local);Integrated Security=true;" +
"Initial Catalog=AdventureWorks"
);
// The input connection string used the
// Server key, but the new connection string uses
// the well-known Data Source key instead.
Console.WriteLine($"Original connection string: '{builder.ConnectionString}'");
// Now that the connection string has been parsed,
// you can work with individual items.
Console.WriteLine($"Initial catalog: '{builder.InitialCatalog}'");
builder.InitialCatalog = "Northwind";
builder.AsynchronousProcessing = true;
// You can refer to connection keys using strings,
// as well. When you use this technique (the default
// Item property in Visual Basic, or the indexer in C#),
// you can specify any synonym for the connection string key name.
builder["Server"] = ".";
builder["Connect Timeout"] = 1000;
builder["Trusted_Connection"] = true;
Console.WriteLine($"Modified connection string: '{builder.ConnectionString}'");
Imports System.Data.SqlClient
Module Module1
Sub Main()
' Create a new SqlConnectionStringBuilder and
' initialize it with a few name/value pairs:
Dim builder As New SqlConnectionStringBuilder(
"Server=(local);Integrated Security=true;" &
"Initial Catalog=AdventureWorks"
)
' The input connection string used the
' Server key, but the new connection string uses
' the well-known Data Source key instead.
Console.WriteLine("Original connection string: " + builder.ConnectionString)
' Now that the connection string has been parsed,
' you can work with individual items.
Console.WriteLine("Initial catalog: " + builder.InitialCatalog)
builder.InitialCatalog = "Northwind"
builder.AsynchronousProcessing = True
' You can refer to connection keys using strings,
' as well. When you use this technique (the default
' Item property in Visual Basic, or the indexer in C#)
' you can specify any synonym for the connection string key
' name.
builder("Server") = "."
builder("Connect Timeout") = 1000
' The Item property is the default for the class,
' and setting the Item property adds the value to the
' dictionary, if necessary.
builder.Item("Trusted_Connection") = True
Console.WriteLine("Modified connection string: " + builder.ConnectionString)
End Sub
End Module
注解
使用连接字符串生成器,开发人员可以使用类的属性和方法以编程方式创建语法正确的连接字符串,并分析和重新生成现有连接字符串。 连接字符串生成器提供与 SQL Server 允许的已知键/值对对应的强类型属性。 如果需要在应用中创建连接字符串,可以使用 SqlConnectionStringBuilder 类生成和修改连接字符串。 该类还可以轻松地管理存储在应用程序配置文件中的连接字符串。
SqlConnectionStringBuilder 对执行有效键/值对检查。 因此,不能使用此类创建无效的连接字符串;尝试添加无效对将引发异常。 该类维护同义词的固定集合,并且可以从同义词转换为相应的已知键名称。
例如,使用 Item
属性检索值时,可以指定包含所需密钥的任何同义词的字符串。 例如,当使用需要包含密钥名称的字符串的任何成员(如 Item[String] 属性或 Remove 方法)时,可以在连接字符串中指定“网络地址”、“addr”或此密钥的任何其他可接受同义词。 有关可接受同义词的完整列表,请参阅 ConnectionString 属性。
Item[String] 属性处理插入恶意条目的尝试。 例如,以下代码使用默认 Item
属性(C# 中的索引器)正确地转义嵌套键/值对:
Dim builder As New System.Data.SqlClient.SqlConnectionStringBuilder
builder("Data Source") = "(local)"
builder("Integrated Security") = True
builder("Initial Catalog") = "AdventureWorks;NewValue=Bad"
Console.WriteLine(builder.ConnectionString)
System.Data.SqlClient.SqlConnectionStringBuilder builder =
new System.Data.SqlClient.SqlConnectionStringBuilder();
builder["Data Source"] = "(local)";
builder["integrated Security"] = true;
builder["Initial Catalog"] = "AdventureWorks;NewValue=Bad";
Console.WriteLine(builder.ConnectionString);
结果是以下连接字符串,以安全方式处理无效值:
Source=(local);Initial Catalog="AdventureWorks;NewValue=Bad";
Integrated Security=True
构造函数
SqlConnectionStringBuilder() |
初始化 SqlConnectionStringBuilder 类的新实例。 |
SqlConnectionStringBuilder(String) |
初始化 SqlConnectionStringBuilder 类的新实例。 提供的连接字符串为实例的内部连接信息提供数据。 |
属性
ApplicationIntent |
在连接到 SQL Server 可用性组中的数据库时声明应用程序工作负荷类型。 可以使用 ApplicationIntent设置此属性的值。 有关对 AlwaysOn 可用性组的 SqlClient 支持的详细信息,请参阅 SqlClient 对高可用性的支持、灾难恢复。 |
ApplicationName |
获取或设置与连接字符串关联的应用程序的名称。 |
AsynchronousProcessing |
获取或设置一个布尔值,该值指示是否允许使用此连接字符串创建的连接进行异步处理。 |
AttachDBFilename |
获取或设置一个字符串,其中包含主数据文件的名称。 这包括可附加数据库的完整路径名称。 |
Authentication |
获取连接字符串的身份验证。 |
BrowsableConnectionString |
获取或设置一个值,该值指示 ConnectionString 属性在 Visual Studio 设计器中是否可见。 (继承自 DbConnectionStringBuilder) |
ColumnEncryptionSetting |
获取或设置连接字符串生成器的列加密设置。 |
ConnectionReset |
已过时.
过时。 获取或设置一个布尔值,该值指示是否从连接池绘制连接时重置连接。 |
ConnectionString |
获取或设置与 DbConnectionStringBuilder关联的连接字符串。 (继承自 DbConnectionStringBuilder) |
ConnectRetryCount |
确定出现空闲连接失败后尝试的重新连接次数。 这必须是介于 0 和 255 之间的整数。 默认值为 1。 设置为 0 可禁用空闲连接失败时重新连接。 如果设置为允许范围之外的值,将引发 ArgumentException。 |
ConnectRetryInterval |
确定出现空闲连接失败后,每次重新连接尝试之间的时间(以秒为单位)。 这必须是介于 1 和 60 之间的整数。 默认值为 10 秒。 如果设置为允许范围之外的值,将引发 ArgumentException。 |
ConnectTimeout |
获取或设置在终止尝试并生成错误之前等待与服务器的连接的时间长度(以秒为单位)。 |
ContextConnection |
获取或设置一个值,该值指示是否应建立与 SQL Server 的客户端/服务器或进程内连接。 |
Count |
获取 ConnectionString 属性中包含的当前键数。 (继承自 DbConnectionStringBuilder) |
CurrentLanguage |
获取或设置 SQL Server 语言记录名称。 |
DataSource |
获取或设置要连接到的 SQL Server 实例的名称或网络地址。 |
EnclaveAttestationUrl |
获取或设置要与基于 enclave 的 Always Encrypted 一起使用的 enclave 证明 URL。 |
Encrypt |
获取或设置一个布尔值,该值指示如果服务器安装了证书,则 SQL Server 是否对客户端和服务器之间发送的所有数据使用 SSL 加密。 |
Enlist |
获取或设置一个布尔值,该值指示 SQL Server 连接池程序是否自动在创建线程的当前事务上下文中登记连接。 |
FailoverPartner |
获取或设置在主服务器关闭时要连接到的伙伴服务器的名称或地址。 |
InitialCatalog |
获取或设置与连接关联的数据库的名称。 |
IntegratedSecurity |
获取或设置一个布尔值,该值指示是否在连接( |
IsFixedSize |
获取一个值,该值指示 SqlConnectionStringBuilder 是否具有固定大小。 |
IsFixedSize |
获取一个值,该值指示 DbConnectionStringBuilder 是否具有固定大小。 (继承自 DbConnectionStringBuilder) |
IsReadOnly |
获取一个值,该值指示 DbConnectionStringBuilder 是否为只读。 (继承自 DbConnectionStringBuilder) |
Item[String] |
获取或设置与指定键关联的值。 在 C# 中,此属性是索引器。 |
Keys |
获取一个 ICollection,其中包含 SqlConnectionStringBuilder中的键。 |
LoadBalanceTimeout |
获取或设置连接在被销毁之前在连接池中生存的最短时间(以秒为单位)。 |
MaxPoolSize |
获取或设置此特定连接字符串的连接池中允许的最大连接数。 |
MinPoolSize |
获取或设置此特定连接字符串的连接池中允许的最小连接数。 |
MultipleActiveResultSets |
如果为 true,应用程序可以维护多个活动结果集(MARS)。 如果为 false,应用程序必须处理或取消一个批处理中的所有结果集,然后才能在该连接上执行任何其他批处理。 有关详细信息,请参阅 多个活动结果集(MARS)。 |
MultiSubnetFailover |
如果应用程序连接到不同子网上的 AlwaysOn 可用性组(AG)或 AlwaysOn 故障转移群集实例(FCI),则设置 MultiSubnetFailover=true 可以更快地检测和连接到活动服务器(当前) 活动服务器。 有关对 AlwaysOn 功能的 SqlClient 支持的详细信息,请参阅 SqlClient 对高可用性、灾难恢复的支持。 |
NetworkLibrary |
获取或设置一个字符串,该字符串包含用于建立与 SQL Server 的连接的网络库的名称。 |
PacketSize |
获取或设置用于与 SQL Server 实例通信的网络数据包的大小(以字节为单位)。 |
Password |
获取或设置 SQL Server 帐户的密码。 |
PersistSecurityInfo |
获取或设置一个值,该值指示在连接处于打开状态后,是否应返回安全敏感信息(如密码或访问令牌)作为 SqlConnectionStringBuilder 连接字符串的一部分。 |
PoolBlockingPeriod |
连接池的阻塞期行为。 |
Pooling |
获取或设置一个布尔值,该值指示每次请求连接时连接是共用还是显式打开。 |
Replication |
获取或设置一个布尔值,该值指示是否支持使用连接进行复制。 |
TransactionBinding |
获取或设置一个字符串值,该值指示连接如何保持其与登记 |
TransparentNetworkIPResolution |
当此密钥的值设置为 |
TrustServerCertificate |
获取或设置一个值,该值指示通道是否在绕过证书链来验证信任时加密通道。 |
TypeSystemVersion |
获取或设置一个字符串值,该值指示应用程序所需的类型系统。 |
UserID |
获取或设置连接到 SQL Server 时要使用的用户 ID。 |
UserInstance |
获取或设置一个值,该值指示是否将连接从默认 SQL Server Express 实例重定向到在调用方帐户下运行的运行时启动的实例。 |
Values |
获取一个 ICollection,其中包含 SqlConnectionStringBuilder中的值。 |
WorkstationID |
获取或设置连接到 SQL Server 的工作站的名称。 |
方法
显式接口实现
扩展方法
Cast<TResult>(IEnumerable) |
将 IEnumerable 的元素强制转换为指定类型。 |
OfType<TResult>(IEnumerable) |
根据指定类型筛选 IEnumerable 的元素。 |
AsParallel(IEnumerable) |
启用查询的并行化。 |
AsQueryable(IEnumerable) |
将 IEnumerable 转换为 IQueryable。 |