断开与 SQL Server 实例的连接
不需要手动关闭和断开 SQL Server 管理对象 (SMO) 对象。系统会根据需要打开和关闭连接。
连接池
如果调用了 Connect 方法,则不会自动释放连接。必须显式调用 Disconnect 方法才能释放与连接池的连接。您还可以请求不加入连接池的连接。通过设置引用 ServerConnection 对象的 ConnectionContext 属性的 NonPooledConnection 属性,可以实现此目的。
断开 RMO 的 SQL Server 实例连接
在使用 RMO 进行编程时,关闭服务器连接的操作过程与使用 SMO 时略有不同。
由于对 RMO 对象的服务器连接的维护是由 ServerConnection 对象负责的,在使用 RMO 进行编程以断开与 Microsoft SQL Server 实例的连接时,也会使用此对象。若要使用 ServerConnection 对象关闭连接,请调用 RMO 对象的 Disconnect 方法。在关闭连接之后,无法再使用 RMO 对象。
示例
若要使用所提供的任何代码示例,您必须选择创建应用程序所需的编程环境、编程模板和编程语言。有关详细信息,请参阅 SQL Server 联机丛书中的“如何在 Visual Studio .NET 中创建 Visual Basic SMO 项目”或“如何在 Visual Studio .NET 中创建 Visual C# SMO 项目”。
在 Visual Basic 中关闭和断开 SMO 对象
此代码示例演示如何请求不加入连接池的连接,方法是设置 ConnectionContext 对象属性的 NonPooledConnection 属性。
Dim srv As Server
srv = New Server
'Disable automatic disconnection.
srv.ConnectionContext.AutoDisconnectMode = AutoDisconnectMode.NoAutoDisconnect
'Connect to the local, default instance of SQL Server.
srv.ConnectionContext.Connect()
'The actual connection is made when a property is retrieved.
Console.WriteLine(srv.Information.Version)
'Disconnect explicitly.
srv.ConnectionContext.Disconnect()
在 Visual C# 中关闭和断开 SMO 对象
此代码示例演示如何请求不加入连接池的连接,方法是设置 ConnectionContext 对象属性的 NonPooledConnection 属性。
{
Server srv;
srv = new Server();
//Disable automatic disconnection.
srv.ConnectionContext.AutoDisconnectMode = AutoDisconnectMode.NoAutoDisconnect;
//Connect to the local, default instance of SQL Server.
srv.ConnectionContext.Connect();
//The actual connection is made when a property is retrieved.
Console.WriteLine(srv.Information.Version);
//Disconnect explicitly.
srv.ConnectionContext.Disconnect();
}