如何关闭oledbconnection对象?

时间:2010-11-03 17:56:12

标签: c# ado.net

好的,所以我有一个A类实现方法M1,它采用excel路径和工作表名称,并返回一个OledbDataReader。 B类调用方法M1,用OledbDataReader做一些事情,然后关闭OledbDataReader。但我如何关闭OLEDBConnection对象?我无法访问它,因为A类中的M1打开了连接!有任何想法吗?谢谢你

3 个答案:

答案 0 :(得分:1)

如果您在外部课程中使用过这样的话。

 using (OleDbConnection connection = new OleDbConnection(connectionString))
 {



}

这将及时处理它......

答案 1 :(得分:1)

您可以像这样改造A班:

class HelperClass : IDisposable
{
    private bool _disposed;
    private OleDbConnection _connection;

    public HelperClass()
    {
        _connection = << open the conection >>;
    }

    public OledbDataReader GetOpenedReader()
    {
        return << open your reader here with the connection >>;
    }

    public void Dispose()
    {
        if (!_disposed)
        {
            _disposed = true;

            _connection.Dispose();
        }
    }
}

然后调用类的负责任就是使用你的类:

using (var helperClass = new HelperClass())
{
    // call the method that opens the reader and uses it
}

答案 2 :(得分:0)

在A类实施IDisposable