OleDbConnection.ReleaseObjectPool 方法

指示可在释放最后一个基础连接时释放 OleDbConnection 对象池。

**命名空间:**System.Data.OleDb
**程序集:**System.Data(在 system.data.dll 中)

语法

声明
Public Shared Sub ReleaseObjectPool
用法

OleDbConnection.ReleaseObjectPool
public static void ReleaseObjectPool ()
public:
static void ReleaseObjectPool ()
public static void ReleaseObjectPool ()
public static function ReleaseObjectPool ()

备注

可调用 ReleaseObjectPool 以释放资源,否则这些资源就要保留给汇入池中的 OleDbConnection 对象。例如,如果在 OLE DB 服务通常将汇入池中的连接保持为活动状态的时间内,将不会再次使用连接对象,则就可能会希望调用这个方法。请注意,仅仅调用此方法并不能实际释放池中存在的活动连接。

在池最终被释放之前,必须执行以下操作:

  1. 调用 Close 将连接对象返回到池中。

  2. 允许每个连接对象都对池超时。

  3. 调用 ReleaseObjectPool

  4. 调用垃圾回收。

反过来,如果针对所有活动连接调用 Close,并调用垃圾回收,但是没有调用 ReleaseObjectPool,那么为汇入池中的对象保留的资源仍将保持可用。

示例

下面的示例创建一个 OleDbConnection,打开该连接并显示它的某些属性,然后关闭该连接并释放对象池以节省资源。

Public Sub OpenConnection(ByVal connectionString As String)

    Using connection As New OleDbConnection(connectionString)
        Try
            connection.Open()
            Console.WriteLine("Connection.State: {0}", _
                connection.State)

            connection.Close()
            OleDbConnection.ReleaseObjectPool()
            Console.WriteLine("Connection.State: {0}", _
                connection.State)

        Catch ex As Exception
            Console.WriteLine(ex.Message)
        End Try
    End Using
End Sub
static void OpenConnection(string connectionString)
{
    using (OleDbConnection connection = new OleDbConnection(connectionString))
    {
        try
        {
            connection.Open();
            Console.WriteLine("Connection.State: {0}", connection.State);

            connection.Close();
            OleDbConnection.ReleaseObjectPool();
            Console.WriteLine("Connection.State: {0}", connection.State);
        }
        catch (Exception ex)
        {
            Console.WriteLine(ex.Message);
        }
        // The connection is automatically closed when the
        // code exits the using block.
    }
using System;
using System.Data;
using System.Data.OleDb;

class Class1
{
    static void Main()
    {
        string x = "Provider=SQLOLEDB;Data Source=(local);Initial Catalog=AdventureWorks;"
            + "Integrated Security=SSPI";
        OpenConnection(x);
        Console.ReadLine();
    }

    static void OpenConnection(string connectionString)
    {
        using (OleDbConnection connection = new OleDbConnection(connectionString))
        {
            try
            {
                connection.Open();
                Console.WriteLine("Connection.State: {0}", connection.State);

                connection.Close();
                OleDbConnection.ReleaseObjectPool();
                Console.WriteLine("Connection.State: {0}", connection.State);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
            // The connection is automatically closed when the
            // code exits the using block.
        }

平台

Windows 98、Windows 2000 SP4、Windows Millennium Edition、Windows Server 2003、Windows XP Media Center Edition、Windows XP Professional x64 Edition、Windows XP SP2、Windows XP Starter Edition

.NET Framework 并不是对每个平台的所有版本都提供支持。有关受支持版本的列表,请参见系统要求

版本信息

.NET Framework

受以下版本支持:2.0、1.1、1.0

请参见

参考

OleDbConnection 类
OleDbConnection 成员
System.Data.OleDb 命名空间

其他资源

连接到数据源
了解连接池