2010-07-05 53 views
0

我有一個需要SqlConnection的Web服務。有5個Web方法使用這個SqlConnection,但是現在它們在每個方法中被聲明(本地)。在這種情況下將其作爲全局變量是否可以接受?Global SqlConnection

謝謝

回答

3

按照documentation for SqlConnection

任何公共靜態此類型的成員(在Visual Basic中的Shared)都是線程安全的。任何實例成員不保證是線程安全的。

由於您可以從不同的線程同時調用不同的Web方法,因此最好不要在它們之間共享相同的連接實例。

典型模式是,每次需要數據庫連接時,都會創建一個新實例,並在完成後立即對其進行處理。線程化是其中一個原因。連接池確保創建所有這些連接實例並不昂貴。

+0

謝謝!我要去解答這個問題。 – gjk 2010-07-05 16:23:20

0

如果您需要第二次連接,該怎麼辦?

我建議在類/函數之間傳遞變量(可選地將其作爲類成員)。

0

除非您需要非常高的性能,否則在每次使用時打開和關閉每個連接。 IIS或系統爲你完成剩下的工作。簡單而高效。