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         }

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

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

  • 相关阅读:
    spring入门-day01
    HTML概述
    day21-基础加强
    iptables
    25个iptables常用示例
    Linux安全调优1:CentOS防火墙的设置与优化
    sessionStorage 的数据会在同一网站的多个标签页之间共享吗?这取决于标签页如何打开
    JavaScript reduce() 方法
    classList属性和className的区别
    NPM 学习笔记整理
  • 原文地址:https://www.cnblogs.com/zwh1993/p/12517069.html
Copyright © 2011-2022 走看看