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         }

 

 

记录一下,后期找找原因。

 

参考:在从服务器接收结果时发生传输级错误

posted @ 2020-03-18 14:03  橘子香气  阅读(2728)  评论(0编辑  收藏  举报