请教一个页面放置太多自己写的控件
每个控件都要单独的打开和关闭一次数据库访问
这样使整个页面打开就很慢
有什么方法可以解决

解决方案 »

  1.   

    其实这也没什么很严重的问题,只要你的自定义控件不会超过5个,不过太多的话就不好这样用
    写一个类继承Page,然后你的页面全部继承这个类,在类里加个属性  
    public DbConnection Conn
    {
      get{};set{};//具体怎么实现就随你了。
    }在使用的时候,你可以在你的自定义控件BasePage p=this.Page as basePage;//这个不知道成不成。没有测试
    p.Conn...
    直接操作,不打开不关闭然后在你的页面类打开,关闭,即共享一个Conn//方案二:写一个Contorl基类,暴露DbConnection属性,构造时实例化并打开,在unLoad事件中关闭。这样也可以实现共用一个效果不过这样只能用一个,效果也会过于底下,楼主可以考虑封装一个连接池,。汗一把
    远了。
    建议楼主可以尽量先用masterpage再用自定义控件。
      

  2.   

    自定义控件的数据访问信息都单独写在一个类中
    另外在访问层中用的 SqlDataReader来读取数据
    读取完数据后就关闭了SqlDataReader和数据库联接
    打开sql server 企业管理器的数据库本地访问联接也只有3个
      

  3.   

    按ojekleen 兄的说法
    把共享一个conn
    假设一个页面要读取30次数据库
    虽然只有一个联接
    但是要执行30条sql 语句
    要返回30的SqlDataReader对象
    还有没有更好的方法