刚才看了一个帖子,他是因为客户端连接过多出了问题我现在的代码是程序一启动就打开连接
Connection 是静态的
程序关闭的时候才断开连接这种方法是不是不合理?是不是有隐患?但是我认为连接数据库是需要时间的,每次用完都要关闭,再用再连?

解决方案 »

  1.   

    LZ:可以看一下ADO.NET 的书籍一般都是在对书籍操控之前,就OPEN(),操作结束就CLOSE()其实你的代码把数据库连接关闭,只要程序存在,就没有真正关闭,ADO.NET 会建立一个连接池
    存储你创建的这个连接,当你在下次操作数据需要打开数据库连接OPEN()时,ADO.NET 会判别
    前面的连接是否可用,可用就直接打开连接,不可用材会创建新的连接。因为数据库连接是有
    限的。
    一般不会去吧数据库连接变成静态的,这样不好。
    比如
    1、
    open();//打开连接
    for()
    {
    //执行数据库操作,假设循环次数很大
    }
    close()//关闭连接
    2、
    for()
    {
    open();//打开连接
    //执行数据库操作,假设循环次数很大
    close()//关闭连接
    }其实1、2种方法对数据库操作效能都差不多,因为你即使每次循环都关闭了连接,
    然后又打开,其实并不是重新创建,而是使用连接池中空闲的连接。
    当然第二种方法会有创建对象的额外开销,这里只是为了说明连接池的问题。
      

  2.   

    那取决于你用什么对象处理数据了,如果你用dataadapter来处理数据,则可以不用自己关闭数据库了,它会自动关闭!如果用其它的就要手动的关闭了!
      

  3.   

    我都用 DataSet 有没有影响?
      

  4.   

    对数据库操作完就应该马上关闭。
    最好connection不要用静态的。
      

  5.   

    尽晚打开,尽早关闭。ado.net会自动给你处理效率问题的。
      

  6.   

    gdi+画图 和数据库 都要手动关闭。不要依赖.net回收本着越早越好的原则,关闭。