表示 SQL Server 数据库的一个打开的连接。无法继承此类。
命名空间:System.Data.SqlClient
程序集:System.Data(在 system.data.dll 中)
当创建 SqlConnection 的实例时,所有属性都设置为它们的初始值。有关这些值的列表,请参见 SqlConnection 构造函数。
如果 SqlConnection 超出范围,则该连接将保持打开状态。因此,必须通过调用 Close 或 Dispose 显式关闭该连接。Close 和 Dispose 在功能上等效。如果连接池值 Pooling 设置为 true 或 yes,则基础连接将返回到连接池。另一方面,如果 Pooling 设置为 false 或 no,则实际上会关闭到服务器的基础连接。
若要确保连接始终关闭,请在 using 块内部打开连接,如下面的代码段所示。这样可确保在代码退出代码块时自动关闭连接。
Using connection As New SqlConnection(connectionString) connection.Open() ' Do work here; connection closed on following line. End Using using (SqlConnection connection = new SqlConnection(connectionString)) { connection.Open(); // Do work here; connection closed on following line. }
注意 |
---|
若要部署高性能应用程序,则必须使用连接池。在使用用于 SQL Server 的 .NET Framework 数据提供程序时,不必启用连接池,因为提供程序会自动对此进行管理,不过您可以修改某些设置。有关更多信息,请参见 。 |
如果执行 SqlCommand 的方法生成 ,那么当严重级别小于等于 19 时,SqlConnection 将仍保持打开状态。当严重级别大于等于 20 时,服务器通常会关闭 SqlConnection。但是,用户可以重新打开连接并继续操作。
用于创建 SqlConnection 对象实例的应用程序可通过设置声明性或强制性安全要求,要求所有直接和间接的调用方对代码都具有足够的权限。SqlConnection 使用 对象设置安全要求。用户可以通过使用 对象来验证他们的代码是否具有足够的权限。用户和管理员还可以使用 来修改计算机、用户和企业级别的安全策略。有关更多信息,请参见 。有关演示如何使用安全请求的示例,请参见 。
注意 |
---|
如果您正在使用 Microsoft .NET Framework 1.0 版,则在使用 连接到 SQL Server 时必须使用 FullTrust 命名权限集。如果使用的是 .NET Framework 1.1 版或更高版本,则此要求不适用。有关更多信息,请参见 和 。 |
有关处理来自服务器的警告和信息性消息的更多信息,请参见 。
Topic | Location |
---|---|
Visual Studio 中的数据访问 |
Private Sub OpenSqlConnection() Dim connectionString As String = GetConnectionString() Using connection As New SqlConnection(connectionString) connection.Open() Console.WriteLine("ServerVersion: {0}", connection.ServerVersion) Console.WriteLine("State: {0}", connection.State) End Using End Sub Private Function GetConnectionString() As String ' To avoid storing the connection string in your code, ' you can retrieve it from a configuration file, using the ' System.Configuration.ConfigurationSettings.AppSettings property Return "Data Source=(local);Database=AdventureWorks;" _ & "Integrated Security=SSPI;" End Function
private static void OpenSqlConnection() { string connectionString = GetConnectionString(); using (SqlConnection connection = new SqlConnection(connectionString)) { connection.Open(); Console.WriteLine("ServerVersion: {0}", connection.ServerVersion); Console.WriteLine("State: {0}", connection.State); } } static private string GetConnectionString() { // To avoid storing the connection string in your code, // you can retrieve it from a configuration file, using the // System.Configuration.ConfigurationSettings.AppSettings property return "Data Source=(local);Initial Catalog=AdventureWorks;" + "Integrated Security=SSPI;"; }
System.Data.SqlClient.SqlConnection