2012-02-21 8 views
1

私はこのコードを持って:ここにデータベース接続がありますか?

try 
{ 
    using (OracleConnection c = new OracleConnection(globalDict[byAlias(connAlias)].connString)) 
    { 
     c.Open(); 

     using (OracleCommand recordExistentQuery = new OracleCommand("regular.IsExistent", c)) 
     { 
     // here working on oraclecommand 
     } 
    } 
} catch(Exception exc) { } 

OracleConnectionは、OracleのdevArtキ繝ァ繝ヨのクラスです。 (OracleConnection c = new OracleConnection(globalDict[byAlias(connAlias)].connString)) { .... }からこのコードを呼び出すと、c.Close()になりますか?

答えて

3

いいえ、Dipose()と呼びます。 usingブロックは、usingステートメントで指定されたオブジェクトの暗黙的にDispose()を呼び出します。

データベース接続の場合、Dispose()Close()の機能を処理し、接続を維持するconnection/processIdを解放します。

0

私もどこかで例外が発生した場合にそれを追加したいデザインすることで、通話に複数を行うことができるはず//here working on oraclecommand(基本的にはあなたのusing(...){ }文の中、Dispose()とも呼ばれます。

あなたの場合、コードブロックの後にClose()への呼び出しを発行すると、接続は既に閉じられている/プールに戻されているため、何もしません。 となり、何もしないでください。

関連する問題