2011-06-15 54 views

回答

3

您應該使用using語句來代替:

using (var reader = sqlCommand.ExecuteReader()) 
{ 
    // do stuff 
} 

這樣的話,你肯定讀者被關閉(設置),即使一個例外是在「做的東西」塊中引發。請參閱this MSDN page


更新(關於您的評論):

using聲明其實沒有別的比一個try-finally塊,以確保讀者在任何情況下配置(關閉)。例如。上面的代碼是相同的:

SqlDataReader reader = null; 
try 
{ 
    reader = sqlCommand.ExecuteReader(); 
} 
finally 
{ 
    reader.Dispose(); // closes the reader 
} 
+0

什麼,如果發生異常using語句裏面..不會有finally語句的話.. – Saravanan 2011-06-15 12:02:02

+0

@saravanan:看到更新的答案 – M4N 2011-06-15 12:26:19

+0

謝謝..其實我有這個問題當我使用MySQL查詢時我得到了IO超時異常,我希望能夠緩慢運行。讓我檢查一下並更新你。 – Saravanan 2011-06-15 13:03:12

相關問題