SQL Server--頻繁建立連接和斷開連接


 

使用數據庫時,不建議一直與數據庫保持連接,最好用時連接用完斷開連接。

我的C#程序中采用“用時連接用完斷開連接”的方式:

  1. 之前是C#程序調用本地數據庫,沒遇到問題;
  2. 后來改為C#程序通過IP地址連接遠程數據庫,在某次讀取中遇到“在從服務器接收結果時發生傳輸級錯誤。 (provider: TCP Provider, error: 0 - 指定的網絡名不再可用。)”的報錯。

網上查到有這樣處理的:SqlConnection 連接對象在高並發線程頻繁的打開和關閉導致的,所以處理方式就改成了只有在不使用連接的時候才關閉它。

懷疑是因為改為連接遠程數據庫后,連接數據庫受網絡的影響,才報錯的。

 也懷疑是using(){}用的不完全對,其處理托管資源與非托管資源時有區別。

 1         //增刪改方法
 2         public static int Execute(string sql, Object param)
 3         {
 4             using (IDbConnection conn = GetConnection())
 5             {
 6                 return conn.Execute(sql, param);
 7             }
 8         }        
 9 
10         //連接數據庫
11         private static SqlConnection GetConnection()
12         {
13             SqlConnection connection = new SqlConnection(connectionSqlserver);
14             try
15             {
16                 connection.Open();
17             }
18             catch (Exception e)
19             {
20                 logger.ErrorFormat("Exception: {0}", e.Message);
21                 Console.WriteLine("Exception: {0}", e.Message);
22                 DbConnected = false;
23                 return null;
24             }
25             DbConnected = true;
26             return connection;
27         }

 

 

記錄一下,后期找找原因。

 

參考:在從服務器接收結果時發生傳輸級錯誤


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM