使用数据库时,不建议一直与数据库保持连接,最好用时连接用完断开连接。
我的C#程序中采用“用时连接用完断开连接”的方式:
网上查到有这样处理的: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 }
记录一下,后期找找原因。
原文:https://www.cnblogs.com/zwh1993/p/12517069.html