好吧,所以我有一个类A实现方法M1,需要一个Excel路径和工作表名称,并返回一个OledbDataReader。 B类调用方法M1,用OledbDataReader做一些事情,然后关闭OledbDataReader。但我怎样才能关闭OLEDBConnection对象?我没有访问它,因为A类中的M1打开了连接!有任何想法吗?谢谢你如何关闭oledbconnection对象?
1
A
回答
1
可以重塑你这样的A类实现IDisposable:
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
}
1
如果你有像你这样的外部类的使用。
using (OleDbConnection connection = new OleDbConnection(connectionString))
{
}
这将出售其所有的好时机......
0
A类
相关问题
- 1. 关闭Access Jet的最佳方法OledbConnection
- 2. JavaScript对象/关闭
- 3. 如何关闭EasyMock对象的录制?
- 4. Javascript关闭对象生命
- 5. 是关闭对象吗?
- 6. Error对象“关闭”不subsettable
- 7. javascript:如何在触发关闭(“焦点”)后关注对象
- 8. 如何关闭对话框
- 9. 何时/如何关闭匿名文件对象?
- 10. 如何/何时关闭对象中的文件?
- 11. 关闭和关闭onDestroy中的对象的最佳方法
- 12. HTML窗口对象关闭或关闭事件
- 13. Oledbconnection
- 14. OleDbConnection
- 15. 如何防止表单对象关闭处置?
- 16. 从javascript关闭返回对象的紧凑程度如何?
- 17. Scala关闭如何转换为Java对象?
- 18. 如何关闭MailBee.NET SMTP对象中的StartTLS
- 19. 如何关闭使用Apache Commons Pool的SSH Maverick连接对象
- 20. 如何正确使用NHibernate ISession对象 - 会话关闭!错误
- 21. 如何释放iOS上使用ARC关闭屏幕的对象?
- 22. 如何关闭cache_classes从中间件使用域对象?
- 23. 我通过VBA代码如何查看Outlook对象被关闭
- 24. 如何强制刷新OutputStream对象而不关闭它?
- 25. Google App Engine:如何在第二笔交易前“关闭”对象?
- 26. 如何解决对象管理器已关闭错误?
- 27. 如何关闭StreamReader/StreamWriter流对象作为类成员?
- 28. 不保存更改关闭对象
- 29. 处理发送对象关闭事件
- 30. org.datanucleus.exceptions.NucleusUserException:对象管理器已经关闭
首先,感谢您的详细解答。我真的很新鲜。我从来没有听说过“助手类之前”。你建议任何好的教程,这将有助于我更好地理解你给我发送的?以及关于您发给我的代码,我将使用它,然后在调用A类方法的B类中,我将首先调用GetOpenerReader,然后调用Dispose方法..对吧? – PeacefulSoul 2010-11-03 18:29:33
在这个例子中,'HelperClass'是类'A'。 'using'的例子为你调用Dispose。如果你使用这样的类,会自动调用Dispose。 – 2010-11-03 19:47:44