2010-11-29 7 views
1

、私は次のことをやっている場合:C#/ Informix:usingステートメント内にある場合は、明示的にCloseを呼び出す必要がありますか?基本的には

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

注:IfxConnectionは、のDBConnectionから継承IBMクラスです。

私はそれをそこに残すことを傷つけることはないと知っていますが、私はコードをできるだけ効率的に整理しているので、「余分な」ものを削除するといいでしょう。 IBMは、クリーンアップとDispose()にそのIfxConnectionクラスでClose()を呼び出す場合:)

答えて

3

、最後の行を削除しても安全です。

docsによると、そうです。

  • using()または
  • で行く

  • using()を没収し、それらの両方が不要な使い方try{ ... } finally { if (connectionIsOpen) connection.Close()}

のために行く:

基本的には、次の2つの選択肢があるだろう。

using()を使用して投票します。

もう一度やり直してはいけません.-もうすでに使われている接続ですが、あなたはそうしないでしょうか? :-)

1

Disposeを呼び出すと、接続が閉じられます。接続文字列もクリアされるので注意してください。

これらのヒントのためIfxConnectionをご参照ください:IfxConnectionオブジェクト上のDisposeを呼び出す

  • 閉じる呼び出すと異なっています。たとえば、[閉じる]は接続文字列をクリアしません。

  • [Closeメソッドの参照]データベースへの接続を閉じます。これは、開いている接続を閉じるために推奨される方法です。

関連する問題