连接的使用原则:尽可能晚打开,尽可能早关闭。
.Net中,有数据连接池维护其性能,不需要担心创建连接时的性能损耗。我可以很负责任地告诉你:这是一个原则问题。

解决方案 »

  1.   

    也不是必须关了的如果用户不是很多的情况下SQL SERVER 5000 用户以内
    窗口打开时 打开连接;
    窗口关闭时 关闭即可;写个 Form 的基类来控制这个事情比较好
    其他窗口都继承这个 窗口。能少写不少代码!
      

  2.   

    原则:尽可能晚的打开连接,尽可能早的关闭连接!!这当然谁都知道了。
    就按楼主的1,2几种情况的前提之下来讨论。回复人: FlashElf(銘龘鶽) ( ) 信誉:97  2005-01-16 10:54:00  得分: 0  
     
     
       也不是必须关了的如果用户不是很多的情况下SQL SERVER 5000 用户以内
    窗口打开时 打开连接;
    窗口关闭时 关闭即可;写个 Form 的基类来控制这个事情比较好
    其他窗口都继承这个 窗口。能少写不少代码!
      
     
    这位的回复明显就有实际意义。
      

  3.   

    用微软的sqlHelper,可以大大简化数据库的操作。
      

  4.   

    原则:尽可能晚的打开连接,尽可能早的关闭连接!!这当然谁都知道了。
    ...这位的回复明显就有实际意义。===========================好吧,说点有“意义”的。
    在程序中我们会用到数据库连接之类的,你会每次都重复、重复再重复地写代码么?
    或者使用SqlHelper?或者使用自己封装的数据库访问组件?或者使用对象持久层?
    只要不是重复写代码,而是使用数据访问组件,你就应该遵守原则。
      

  5.   

    我个人认为对于CS结构没有必要频繁的打开连接不安比连接。
    可以使用singleton模式建立一个连接类,保证一个应用程序
    只有一个连接。
    1。这样可以避免频繁的数据库开关操作,方便写程序。
    2。对于使用ORM,尤其是nhibernate,如果使用lazy加载模式,
      你在加载前必须使session一直代开,使用一个应用程序一个
      session (connection类似)太方便啦。而且性能很好。
    因此并发用户在500个以下可以考虑使用一个连接。在以下情况下不能使用同一个连接。
    1.bs结构。
    2.数据库本身不能够同时支持很多连接。看了大家的回复,一致同意:
    “连接的使用原则:尽可能晚打开,尽可能早关闭”
    能说说优点吗?
      

  6.   

    关于这个问题确实非常有趣,大家的意见也各有看法。总结一下,在不考虑任何其他条件的情况下,随时关闭和只使用一条连接都是正确的,而且目前最新的态度是有些操作前必须先关闭数据库连接,然后再打开,如SQLDataAdapter,最好有微软的开发人员出来表明一下态度,大家都很晕。
      

  7.   

    回复人: hel(抵制日货,从我做起) ( ) 信誉:98  2005-01-17 22:06:00  得分: 0  
     
     
       我个人认为对于CS结构没有必要频繁的打开连接不安比连接。
    可以使用singleton模式建立一个连接类,保证一个应用程序
    只有一个连接。
    1。这样可以避免频繁的数据库开关操作,方便写程序。
    2。对于使用ORM,尤其是nhibernate,如果使用lazy加载模式,
      你在加载前必须使session一直代开,使用一个应用程序一个
      session (connection类似)太方便啦。而且性能很好。
    因此并发用户在500个以下可以考虑使用一个连接。在以下情况下不能使用同一个连接。
    1.bs结构。
    2.数据库本身不能够同时支持很多连接。看了大家的回复,一致同意:
    “连接的使用原则:尽可能晚打开,尽可能早关闭”
    能说说优点吗?=============================
    只用一个连接可能不太适合处理事务的情况。接下来的2个优点在这种情况下,不是很有效。;)
    能说说优点吗?->数据库连接是宝贵和有限的资源,因此尽可能少地占用它。
    难道大家都只是写一些玩具,而不是做应用系统么?
      

  8.   

    bearbaba(【笨笨熊】)
     目前最新的态度是有些操作前必须先关闭数据库连接,然后再打开,如SQLDataAdapter,
    ===========
    我想不出什么操作需要先关闭数据库连接。SQLDataAdapter是不需要关闭数据库连接的。肯定的。adailee(钉子和毛毛虫) ( ) 
    只用一个连接可能不太适合处理事务的情况。接下来的2个优点在这种情况下,不是很有效。;)
    ====================
    一个连接同样适合处理事务。对于我提到的第二个优点,你使用了NHIBERNATE就知道了。能说说优点吗?->数据库连接是宝贵和有限的资源,因此尽可能少地占用它。
    ======================
    这个确实是一个优点,但是当服务器内存稍微大一点这一点在500用户以下是不用考虑的。
    要知道CS结构的程序多数并发访问量在500以下。有的大型数据库支持上万的并发访问量。