2

SqlCommandが実行されてタイムアウトした場合、それぞれのSqlConnectionは閉じられているか、破棄されていますか?

4

3 に答える 3

6

SqlConnectionをusingステートメントでラップしていない限り、接続を閉じて破棄する必要があります(他の例外と同様)。

try/catch/finallyブロックを使用することもできます。

try
{
    // Create and execute your SqlCommand here
}
catch(SqlException ex)
{
    // Catch the timeout
}
finally
{
    // Close and Dispose the SqlConnection you're using
}

しかしusing、はるかにクリーンで、自動的に処理されます。

using(SqlConnection conn = new SqlConnection())
{
    // Do your work here.
    // The SqlConnection will be closed and disposed at the end of the block.
}
于 2009-12-03T14:52:08.763 に答える
5

いいえ、あなたはまだ自分の後で片付ける必要があります。ただし、usingブロックを使用すると、次のように破棄されます。

using (SqlConnection connection = new SqlConnection(...))
{
    // ...  
}
于 2009-12-03T14:50:56.303 に答える
0

これはすべて、例外の後に finally 句でラップする必要があります。これにより、接続が閉じられ、SQL で関連付けられたオブジェクト リソースがクリーンアップされます。try / catch / finally を見て、finally ステートメントにクリーンアップ コードを入れてください。

于 2009-12-03T14:53:26.687 に答える