#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);
}
}