zoukankan      html  css  js  c++  java
  • 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         }

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

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

  • 相关阅读:
    1001. 害死人不偿命的(3n+1)猜想 (15)
    单链表排序
    简单插入排序
    简单选择排序
    C语言-随机数
    二分查找(折半查找)
    顺序查找-顺序查找-带哨兵查找
    队列-链表实现
    循环队列_数组实现
    队列-顺序存储-简单实现
  • 原文地址:https://www.cnblogs.com/zwh1993/p/12517069.html
Copyright © 2011-2022 走看看