我有一个监控线程,每隔10秒就会查询一次数据库。我想问的是。我始终打开一个SqlConnection进行查询,还是说。每10秒打开一个新的SqlConnection,用完关闭,10秒后再重新打开,关闭这样循环,这两种方法哪种更合理,
因为 数据库连接是打开和关闭的开销较大,但是如果一个连接24小时打开着会有其它问题吗

解决方案 »

  1.   

    默认数据库用完关闭后(con.Close(),不是con.Dispose()),会将连接放入连接池中,等下一次数据库连接使用。
    lz的这个10秒中使用一次,数据库可以在使用时Open(),用完后Close()。这样可能比较消耗资源,因为10秒使用一次。
    可以使用常连接方式,数据库使用完后不关闭,下次再使用前先判断连接的状态,如果是关闭状态再打开。
      

  2.   

    using(sqlconnection con=new sqlconnection("连接串"))
    {
      try
      {                        
         con.Open();
      }
     catch(Exception E)
      {
         con.Close();
         throw new Exception(E.Message);
      }
    }
    写个方法 每次调用这个方法 就行了
      

  3.   

    通过Timer和thread定时查询数据库,用完关闭。
      

  4.   


    现在我想知道的不是怎么调用 的问题。而是对SqlConnection怎么处理