我們有一個Web服務器,它使用單個連接字符串連接到數據庫,這使得它成爲能夠使用連接池的強有力候選者。ConnectionPools有一個連接,還是很多?
我們需要一個SqlConnection對象還是很多?
即我們應該在共享內存中建立一個連接,並且每次都使用它,或者每次我們想要使用任何連接對象時都應該創建一個新連接?
是否調用.Open()從池中分配它,還是使用相同的連接字符串創建新對象?
另外,在連接釋放回池之前,還是需要在連接上調用.Close(),或者變量超出了範圍?
我在某處讀過(我忘記了確切的地方 - 抱歉)你不應該在池中的連接上調用close,因爲它會以某種方式將它們從池中移除。
我明白,這是最好使用「使用」,但如果我有很多的遺留代碼不,我需要擔心,或者退出範圍(並且沒有指向它的變量)會關閉連接並將其返回到池中。 – Jonathan
你也可以使用'Close()',你不必使用'using'。 – Szymon
不,當持有它們的變量超出範圍時連接未關閉。我現在不是100%確定,但是如果持有連接的線程被殺死或完成,連接將被關閉。當然,停止打開連接的進程也會關閉連接。 – Szymon