#region 程序集 System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
// C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\System.Data.dll
#endregion
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data.Common;
using System.Security;
using System.Threading;
using System.Threading.Tasks;
namespace System.Data.SqlClient
{
//
// 摘要:
// 表示到 SQL Server 数据库的打开连接。 此类不能被继承。
[DefaultEvent("InfoMessage")]
public sealed class SqlConnection : DbConnection, ICloneable
{
//
// 摘要:
// 初始化 System.Data.SqlClient.SqlConnection 类的新实例。
public SqlConnection();
//
// 摘要:
// 如果给定包含连接字符串的字符串,则初始化 System.Data.SqlClient.SqlConnection 类的新实例。
//
// 参数:
// connectionString:
// 用于打开 SQL Server 数据库的连接。
public SqlConnection(string connectionString);
//
// 摘要:
// 在给定连接字符串的情况下,初始化 System.Data.SqlClient.SqlConnection 类的新实例,该连接字符串不使用 Integrated
// Security = true 和包含用户 ID 和密码的 System.Data.SqlClient.SqlCredential 对象。
//
// 参数:
// connectionString:
// 不使用 ContextConnection = true 或以下任何连接字符串关键字的连接字符串:Integrated Security = true、UserId
// 或 Password。
//
// credential:
// 一个 System.Data.SqlClient.SqlCredential 对象。 如果 credential 为 null,则 System.Data.SqlClient.SqlConnection.#ctor(System.String,System.Data.SqlClient.SqlCredential)
// 在功能上等效于 System.Data.SqlClient.SqlConnection.#ctor(System.String)。
public SqlConnection(string connectionString, SqlCredential credential);
//
// 摘要:
// 允许你设置数据库服务器的受信任密钥路径列表。 如果在处理应用程序查询时驱动程序接收到不位于列表中的密钥路径,则查询会失败。 此属性针对安全攻击提供附加保护,这些安全攻击涉及提供伪造密钥路径的受威胁的
// SQL Server,可能导致密钥存储凭据泄露。
//
// 返回结果:
// 适用于列加密的受信任主密钥路径的列表。
[DefaultValue(null)]
[ResCategoryAttribute("DataCategory_Data")]
[ResDescriptionAttribute("TCE_SqlConnection_TrustedColumnMasterKeyPaths")]
public static IDictionary<string, IList<string>> ColumnEncryptionTrustedMasterKeyPaths { get; }
//
// 摘要:
// 如果设置为 true,则对当前连接启用统计信息收集。
//
// 返回结果:
// 如果启用了统计信息收集,则返回 true;否则返回 false。 默认为 false。
[DefaultValue(false)]
[ResCategoryAttribute("DataCategory_Data")]
[ResDescriptionAttribute("SqlConnection_StatisticsEnabled")]
public bool StatisticsEnabled { get; set; }
//
// 摘要:
// 获取或设置用于连接的访问令牌。
//
// 返回结果:
// 用于连接的访问令牌。
[Browsable(false)]
[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
[ResDescriptionAttribute("SqlConnection_AccessToken")]
public string AccessToken { get; set; }
//
// 摘要:
// 获取或设置用于打开 SQL Server 数据库的字符串。
//
// 返回结果:
// 连接字符串,其中包含源数据库名称和建立初始连接所需的其他参数。 默认值为一个空字符串。
//
// 异常:
// T:System.ArgumentException:
// 提供了一个无效的连接字符串参数,或者未提供所需的连接字符串参数。
[DefaultValue("")]
[Editor("Microsoft.VSDesigner.Data.SQL.Design.SqlConnectionStringEditor, Microsoft.VSDesigner, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", "System.Drawing.Design.UITypeEditor, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")]
[RecommendedAsConfigurable(true)]
[RefreshProperties(RefreshProperties.All)]
[ResCategoryAttribute("DataCategory_Data")]
[ResDescriptionAttribute("SqlConnection_ConnectionString")]
[SettingsBindable(true)]
public override string ConnectionString { get; set; }
//
// 摘要:
// 获取终止尝试并生成错误之前在尝试建立连接时所等待的时间。
//
// 返回结果:
// 等待连接打开所需的时间(以秒为单位)。 默认值为 15 秒。
//
// 异常:
// T:System.ArgumentException:
// 设置的值小于 0。
[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
[ResDescriptionAttribute("SqlConnection_ConnectionTimeout")]
public override int ConnectionTimeout { get; }
//
// 摘要:
// 获取当前数据库的名称或打开连接后要使用的数据库的名称。
//
// 返回结果:
// 当前数据库的名称或打开连接后要使用的数据库的名称。 默认值为一个空字符串。
[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
[ResDescriptionAttribute("SqlConnection_Database")]
public override string Database { get; }
//
// 摘要:
// 获取或设置 System.Data.SqlClient.SqlConnection.FireInfoMessageEventOnUserErrors 属性。
//
// 返回结果:
// 如果已设置了 System.Data.SqlClient.SqlConnection.FireInfoMessageEventOnUserErrors 属性,则为
// true;否则为 false。
public bool FireInfoMessageEventOnUserErrors { get; set; }
//
// 摘要:
// 获取要连接的 SQL Server 的实例的名称。
//
// 返回结果:
// 要连接的 SQL Server 的实例的名称。 默认值为一个空字符串。
[Browsable(true)]
[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
[ResDescriptionAttribute("SqlConnection_DataSource")]
public override string DataSource { get; }
//
// 摘要:
// 获取用于与 SQL Server 的实例进行通信的网络数据包的大小(以字节为单位)。
//
// 返回结果:
// 网络数据包的大小(以字节为单位)。 默认值为 8000。
[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
[ResCategoryAttribute("DataCategory_Data")]
[ResDescriptionAttribute("SqlConnection_PacketSize")]
public int PacketSize { get; }
//
// 摘要:
// 最近连接尝试连接的 ID,无论该尝试是成功还是失败。
//
// 返回结果:
// 最近连接尝试的连接 ID。
[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
[ResCategoryAttribute("DataCategory_Data")]
[ResDescriptionAttribute("SqlConnection_ClientConnectionId")]
public Guid ClientConnectionId { get; }
//
// 摘要:
// 获取一个字符串,该字符串包含客户端所连接到的 SQL Server 的实例的版本。
//
// 返回结果:
// SQL Server 的实例的版本。
//
// 异常:
// T:System.InvalidOperationException:
// 连接已关闭。 当返回的任务未完成,且在调用 System.Data.SqlClient.SqlConnection.OpenAsync(System.Threading.CancellationToken)
// 后未打开连接时,调用了 System.Data.SqlClient.SqlConnection.ServerVersion。
[Browsable(false)]
[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
[ResDescriptionAttribute("SqlConnection_ServerVersion")]
public override string ServerVersion { get; }
//
// 摘要:
// 最近在连接上执行网络操作时表示 System.Data.SqlClient.SqlConnection 的状态。
//
// 返回结果:
// 一个 System.Data.ConnectionState 枚举。
[Browsable(false)]
[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
[ResDescriptionAttribute("DbConnection_State")]
public override ConnectionState State { get; }
//
// 摘要:
// 获取一个标识数据库客户端的字符串。
//
// 返回结果:
// 一个标识数据库客户端的字符串。 如果未指定,则为客户端计算机的名称。 如果两个都没有指定,则值为空字符串。
[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
[ResCategoryAttribute("DataCategory_Data")]
[ResDescriptionAttribute("SqlConnection_WorkstationId")]
public string WorkstationId { get; }
//
// 摘要:
// 获取或设置此连接的 System.Data.SqlClient.SqlCredential 对象。
//
// 返回结果:
// 此连接的 System.Data.SqlClient.SqlCredential 对象。
[Browsable(false)]
[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
[ResDescriptionAttribute("SqlConnection_Credential")]
public SqlCredential Credential { get; set; }
protected override DbProviderFactory DbProviderFactory { get; }
//
// 摘要:
// 当 SQL Server 返回一个警告或信息性消息时发生。
[ResCategoryAttribute("DataCategory_InfoMessage")]
[ResDescriptionAttribute("DbConnection_InfoMessage")]
public event SqlInfoMessageEventHandler InfoMessage;
//
// 摘要:
// 将连接字符串中指示的用户的 SQL Server 密码更改为提供的新密码。
//
// 参数:
// connectionString:
// 包含连接至所需服务器的足够信息的连接字符串。 连接字符串必须包含用户 ID 和当前密码。
//
// newPassword:
// 要设置的新密码。 此密码必须符合服务器上设置的任何密码安全策略,包括最小长度、特定字符要求等等。
//
// 异常:
// T:System.ArgumentException:
// 连接字符串包括将使用集成安全性的选项。 Or newPassword 超过了 128 个字符。
//
// T:System.ArgumentNullException:
// connectionString 或 newPassword 参数为 null。
public static void ChangePassword(string connectionString, string newPassword);
//
// 摘要:
// 更改 System.Data.SqlClient.SqlCredential 对象中指示的用户的 SQL Server 密码。
//
// 参数:
// connectionString:
// 包含连接至服务器的足够信息的连接字符串。 连接字符串不应使用以下任何一个连接字符串关键字:Integrated Security = true、UserId
// 或 Password;或 ContextConnection = true。
//
// credential:
// 一个 System.Data.SqlClient.SqlCredential 对象。
//
// newSecurePassword:
// 新密码。 newSecurePassword 必须为只读。 该密码也必须符合服务器上设置的任何密码安全策略(例如:最小长度、特定字符要求)。
//
// 异常:
// T:System.ArgumentException:
// 连接字符串包含的任意组合 UserId, ,Password, ,或 Integrated Security=true。 连接字符串包含 Context
// Connection=true。 newSecurePassword 大于 128 个字符。 newSecurePassword 不是只读。 newSecurePassword
// 是一个空字符串。
//
// T:System.ArgumentNullException:
// 其中一个参数(connectionString、credential 或 newSecurePassword)为 null。
public static void ChangePassword(string connectionString, SqlCredential credential, SecureString newSecurePassword);
//
// 摘要:
// 清空连接池。
public static void ClearAllPools();
//
// 摘要:
// 清空与指定连接关联的连接池。
//
// 参数:
// connection:
// 要从池中清除的 System.Data.SqlClient.SqlConnection。
public static void ClearPool(SqlConnection connection);
//
// 摘要:
// 注册列加密密钥存储提供程序。
//
// 参数:
// customProviders:
// 自定义提供程序
public static void RegisterColumnEncryptionKeyStoreProviders(IDictionary<string, SqlColumnEncryptionKeyStoreProvider> customProviders);
//
// 摘要:
// 开始数据库事务。
//
// 返回结果:
// 表示新事务的对象。
//
// 异常:
// T:System.Data.SqlClient.SqlException:
// 使用多个活动结果集 (MARS) 时,不允许并行事务。
//
// T:System.InvalidOperationException:
// 不支持并行事务。
public SqlTransaction BeginTransaction();
//
// 摘要:
// 以指定的隔离级别启动数据库事务。
//
// 参数:
// iso:
// 事务应在其下运行的隔离级别。
//
// 返回结果:
// 表示新事务的对象。
//
// 异常:
// T:System.Data.SqlClient.SqlException:
// 使用多个活动结果集 (MARS) 时,不允许并行事务。
//
// T:System.InvalidOperationException:
// 不支持并行事务。
public SqlTransaction BeginTransaction(IsolationLevel iso);
//
// 摘要:
// 以指定的事务名称启动数据库事务。
//
// 参数:
// transactionName:
// 事务名称。
//
// 返回结果:
// 表示新事务的对象。
//
// 异常:
// T:System.Data.SqlClient.SqlException:
// 使用多个活动结果集 (MARS) 时,不允许并行事务。
//
// T:System.InvalidOperationException:
// 不支持并行事务。
public SqlTransaction BeginTransaction(string transactionName);
//
// 摘要:
// 以指定的隔离级别和事务名称启动数据库事务。
//
// 参数:
// iso:
// 事务应在其下运行的隔离级别。
//
// transactionName:
// 事务名称。
//
// 返回结果:
// 表示新事务的对象。
//
// 异常:
// T:System.Data.SqlClient.SqlException:
// 使用多个活动结果集 (MARS) 时,不允许并行事务。
//
// T:System.InvalidOperationException:
// 不支持并行事务。
public SqlTransaction BeginTransaction(IsolationLevel iso, string transactionName);
//
// 摘要:
// 更改已打开的 System.Data.SqlClient.SqlConnection 的当前数据库。
//
// 参数:
// database:
// 要代替当前数据库加以使用的数据库的名称。
//
// 异常:
// T:System.ArgumentException:
// 数据库名称无效。
//
// T:System.InvalidOperationException:
// 连接未打开。
//
// T:System.Data.SqlClient.SqlException:
// 不能更改数据库。
public override void ChangeDatabase(string database);
//
// 摘要:
// 关闭与数据库之间的连接。 此方法是关闭任何打开连接的首选方法。
//
// 异常:
// T:System.Data.SqlClient.SqlException:
// 打开连接时出现的连接级别的错误。
public override void Close();
//
// 摘要:
// 创建并返回与 System.Data.SqlClient.SqlConnection 关联的 System.Data.SqlClient.SqlCommand
// 对象。
//
// 返回结果:
// 一个 System.Data.SqlClient.SqlCommand 对象。
public SqlCommand CreateCommand();
//
// 摘要:
// 在指定的事务中登记为分布式事务。
//
// 参数:
// transaction:
// 对用于登记的现有 System.EnterpriseServices.ITransaction 的引用。
public void EnlistDistributedTransaction(System.EnterpriseServices.ITransaction transaction);
//
// 摘要:
// 在指定的事务中登记为分布式事务。
//
// 参数:
// transaction:
// 对用于登记的现有 System.Transactions.Transaction 的引用。
public override void EnlistTransaction(System.Transactions.Transaction transaction);
//
// 摘要:
// 返回的数据源的架构信息 System.Data.SqlClient.SqlConnection。 有关方案的详细信息,请参阅 SQL Server Schema
// Collections。
//
// 返回结果:
// 一个包含架构信息的 System.Data.DataTable。
public override DataTable GetSchema();
//
// 摘要:
// 返回的数据源的架构信息 System.Data.SqlClient.SqlConnection 架构名称和指定的字符串数组的限制值使用指定的字符串。
//
// 参数:
// collectionName:
// 指定要返回的架构的名称。
//
// restrictionValues:
// 请求的架构的一组限制值。
//
// 返回结果:
// 一个包含架构信息的 System.Data.DataTable。
//
// 异常:
// T:System.ArgumentException:
// 将 collectionName 指定为 null。
public override DataTable GetSchema(string collectionName, string[] restrictionValues);
//
// 摘要:
// 通过使用架构名称的指定字符串,返回此 System.Data.SqlClient.SqlConnection 的数据源的架构信息。
//
// 参数:
// collectionName:
// 指定要返回的架构的名称。
//
// 返回结果:
// 一个包含架构信息的 System.Data.DataTable。
//
// 异常:
// T:System.ArgumentException:
// 将 collectionName 指定为 null。
public override DataTable GetSchema(string collectionName);
//
// 摘要:
// 使用由 System.Data.SqlClient.SqlConnection.ConnectionString 指定的属性设置打开一个数据库连接。
//
// 异常:
// T:System.InvalidOperationException:
// 如果不指定数据源或服务器,则无法打开连接。 或 连接已打开。
//
// T:System.Data.SqlClient.SqlException:
// 打开连接时出现的连接级别错误。 如果 System.Data.SqlClient.SqlException.Number 属性包含值 18487 或 18488,这表明指定的密码已过期或必须重置。
// 有关更多信息,请参阅 System.Data.SqlClient.SqlConnection.ChangePassword(System.String,System.String)
// 方法。 App.config 文件中的 <system.data.localdb> 标记具有无效或未知元素。
//
// T:System.Configuration.ConfigurationErrorsException:
// <localdbinstances> 部分中有两个具有相同名称的条目。
public override void Open();
//
// 摘要:
// System.Data.SqlClient.SqlConnection.Open 的异步版本,打开 System.Data.SqlClient.SqlConnection.ConnectionString
// 指定的属性设置的数据库连接。 取消标记可用于请求在连接超时超过前放弃操作。 异常将通过返回的任务传播。 如果在未成功连接的情况下连接超时时间已过,则返回的任务将被标记为“附带异常出错”。
// 实现返回一个不带有用于共用和非共用连接的锁定调用线程的“任务”。
//
// 参数:
// cancellationToken:
// 取消指令。
//
// 返回结果:
// 表示异步操作的任务。
//
// 异常:
// T:System.InvalidOperationException:
// 在完成任务前,为同一个实例多次调用 System.Data.SqlClient.SqlConnection.OpenAsync(System.Threading.CancellationToken)。
// 在连接字符串中指定 Context Connection=true。 在经过连接超时时间之前从连接池中的连接不可用。
//
// T:System.Data.SqlClient.SqlException:
// 打开连接时出现的任何由 SQL Server 返回的错误。
public override Task OpenAsync(CancellationToken cancellationToken);
//
// 摘要:
// 如果启用了统计信息收集,所有值都将重置为零。
public void ResetStatistics();
//
// 摘要:
// 调用此方法时,将返回统计信息的名称值对集合。
//
// 返回结果:
// 返回 System.Collections.DictionaryEntry 项的 System.Collections.IDictionary 类型的引用。
public IDictionary RetrieveStatistics();
protected override DbTransaction BeginDbTransaction(IsolationLevel isolationLevel);
protected override DbCommand CreateDbCommand();
protected override void Dispose(bool disposing);
}
}