断开与 SQL Server 实例的连接
不需要手动关闭和断开 SQL Server 管理对象 (SMO) 对象。系统会根据需要打开和关闭连接。
连接池
如果调用了 Connect 方法,则不会自动释放连接。必须显式调用 Disconnect 方法才能释放与连接池的连接。您还可以请求不加入连接池的连接。通过设置引用 ServerConnection 对象的 ConnectionContext 属性的 NonPooledConnection 属性,可以实现此目的。
断开 RMO 的 SQL Server 实例连接
在使用 RMO 进行编程时,关闭服务器连接的操作过程与使用 SMO 时略有不同。
由于对 RMO 对象的服务器连接的维护是由 ServerConnection 对象负责的,在使用 RMO 进行编程以断开与 MicrosoftSQL Server 实例的连接时,也会使用此对象。若要使用 ServerConnection 对象关闭连接,请调用 RMO 对象的 Disconnect 方法。在关闭连接之后,无法再使用 RMO 对象。
示例
若要使用所提供的任何代码示例,您必须选择创建应用程序所需的编程环境、编程模板和编程语言。 有关详细信息,请参阅 SQL Server 联机丛书中的“How to: Create a Visual Basic SMO Project in Visual Studio .NET”或“How to: Create a Visual C# SMO Project in Visual Studio .NET”。
在 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();
}