当前位置:  开发笔记 > 数据库 > 正文

如何在.NET中关闭OracleConnection

如何解决《如何在.NET中关闭OracleConnection》经验,为你挑选了2个好方法。

说我有这两个对象:

OracleConnection connection = new OracleConnection(connectionString);  
OracleCommand command = new OracleCommand(sql, connection);

要关闭连接或Oracle,我是否必须调用command.Dispose(),connection.Dispose()或两者?

这够好了:

using(connection)  
{
    OracleDataReader reader = cmd.ExecuteReader();
    // whatever...
}

John Saunder.. 17

using (OracleConnection connection = new OracleConnection(connectionString))
{
    using (OracleCommand command = new OracleCommand(sql, connection))
    {
        using (OracleDataReader reader = cmd.ExecuteReader())
        {
        }
    }
}

如果它实现了IDisposable,并且如果你创建它,那么将它放在using块中.



1> John Saunder..:
using (OracleConnection connection = new OracleConnection(connectionString))
{
    using (OracleCommand command = new OracleCommand(sql, connection))
    {
        using (OracleDataReader reader = cmd.ExecuteReader())
        {
        }
    }
}

如果它实现了IDisposable,并且如果你创建它,那么将它放在using块中.



2> Russ..:

这两个答案都非常符合目标.您总是希望在任何IDisposeable对象上调用.Dispose().通过包装在"使用"中,您可以使编译器始终为您提供try/finialy块.

1注意,如果你想避免嵌套,可以像这样编写相同的代码:

 using (OracleConnection connection = new OracleConnection(connectionString))
 using (OracleCommand command = new OracleCommand(sql, connection))
 using (OracleDataReader reader = cmd.ExecuteReader())
    {
        // do something here
    }


你*可以*编写这样的代码,但恕我直言,你应该**永远不要这样写.
推荐阅读
N个小灰流_701
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有