1.對數據庫的連接SqlConnection con = new SqlConnection(constr);使用完成后,應該至少應該close或dispose關閉。否則會導致數據庫例如(SQl2005)中處於sleeping的進程增加並且不能自己銷毀,最終會導致出現"“連接超時,已經到達最大連接數等信息”。
其解決方法:見微軟的官方說明“如果 SqlConnection 超出范圍,則不會將其關閉。因此,除非將代碼放在 using 語句內,否則必須調用 Close 或 Dispose 來顯式關閉連接。它們在功能上是等效的。如果將連接池值 Pooling 設置為 true 或 yes,則也會釋放物理連接。”
https://msdn.microsoft.com/zh-cn/library/system.data.sqlclient.sqlconnection.close(v=vs.80).aspx

2.Close之前可以增加SqlConnection.ClearPool(con),用於清除每次的連接,防止已經進行的數據庫連接進入sleeping而導致連接用戶數User Connections 增加。