C#/ Informix:我是否需要在我的数据库连接上显式调用Close,如果它在using语句中?

时间:2010-11-29 18:31:56

标签: c# database-connection informix using-statement

基本上,如果我正在做以下事情:

using (IfxConnection connection = ConnectionManager.GetConnection())
{
    connection.Open();
    ...
    if (connection != null) connection.Close(); //Is this necessary?
}

注意:IfxConnection是继承自DBConnection的IBM类。

我知道把它放在那里也不会有什么坏处,但是我正处于清理工作并使我的代码尽可能高效的地步,因此删除任何“额外”的东西都会很好。 :)

2 个答案:

答案 0 :(得分:3)

如果IBM在Close()上的IfxConnection课程中清理并调用Dispose(),则可以安全删除最后一行。

根据docs,是的,他们确实如此。

基本上,您有两种选择:

  • 使用using()
  • forfeit using()并选择try{ ... } finally { if (connectionIsOpen) connection.Close()}

不必使用它们。

我会投票使用using()。 (双关语); - )

只是不要重复使用 - 再次,再次;-) - 已经处理好的连接 - 但是你不会这样做,不管怎样,你呢? : - )

答案 1 :(得分:1)

致电Dispose会为您关闭连接。但要小心,因为它也会清除连接字符串。

有关这些提示,请参阅IfxConnection

  
      
  • 在IfxConnection对象上调用Dispose与调用Close不同。例如,Dispose清除连接字符串,而Close则不清除。

  •   
  • [参考Close方法] 关闭与数据库的连接。这是关闭任何打开连接的首选方法。

  •