在大多数网站的开发中,很多功能都是模块化了的,方便统一和管理,用户控件显然是个不错的选择!我们常常会有很多栏目,封在用户控件里面,都是用来读取每个栏目的记录,每个控件的数据读取都是独立的,也就是说,这个页面有多少个这样的用户控件,就要建立多少个数据库连接,非常耗费资源!虽然用户控件可以用缓存,但是毕竟效率没有一次性读取的效率高!所以想了想,发现用DataReader的NextResult可以实现这样的效果!
首先是一个控件绑定的Helper:

 public class ListBinder
    {
       private List<Repeater> _controllist=new List<Repeater>();
        public List<Repeater> Controllist
        {
            get { return _controllist; }
        }
        public  void BindAll(IDataReader dr)
        {
            int length=this._controllist.Count;
            for (int i = 0; i < length;i++ )
            {
                if (i == 0)
                {
                    _controllist[i].DataSource = dr;
                    _controllist[i].DataBind();
                }
                else
                {
                    if (dr.NextResult())
                    {
                        _controllist[i].DataSource = dr;
                        _controllist[i].DataBind();
                    }
                }
            }
        }
    }

接下来是测试调用的代码:

  string sql = "select top 5 * from [CaseShow] where [CategoryId]=9;select top 5 * from [CaseShow] where [CategoryId]=10;select top 5 * from [CaseShow] where [CategoryId]=11;select top 5 * from [CaseShow] where [CategoryId]=12";
            using (IDbConnection con = AFrameWork.Data.DataFactory.GetConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString))
            {
                try
                {
                    IDbCommand cmd = con.CreateCommand();
                    cmd.CommandType = CommandType.Text;
                    cmd.CommandText = sql;
                    con.Open();
                    using (IDataReader dr = cmd.ExecuteReader())
                    {
                        ListBinder lb = new ListBinder();
                        lb.Controllist.Add(rpZhuanti);
                        lb.Controllist.Add(rpAd);
                        lb.Controllist.Add(rpHunli);
                        lb.Controllist.Add(rpPs);
                        lb.BindAll(dr);
                    }

                }
                catch
                {
                    con.Close();
                    
                    throw;
                }

这里一次性读了四个栏目出来,只建立了一个数据库连接,比原来的效率和性能要好很多!不过这里对于结果集和控件的绑定对应就要自己控制了,当然我相信聪明的你会有办法搞定的,呵呵!

转载于:https://www.cnblogs.com/Ablog-sunny/archive/2008/04/19/1161369.html

一个顶N个的NextResult相关推荐

  1. 我有一个顶会idea还没做实验,NeurIPS:先占坑再实验!

    作者 | 青 暮 相信大家对费马大定理都不陌生,x^n +y^n=z^n.一个简单无比的方程式却是难到几百年后才被数学家解决.而这其中最令人着迷的,当属费马当年在手稿留下的一句话:我这里有一个绝妙的证 ...

  2. 【MCTalk Live】网易对话谷歌:如何成为一个顶50个的A+++++程序员

    MCTalk Live首秀 ---------- 从"互联网时代"到"移动互联网",互联网给时代带来全新的产业生产模式以及理念,而当下,我们站在"人工 ...

  3. 乐玩插件和大漠插件哪个好_哪个PS后期插件功能最多最强?风光人像全能修图王!一个顶五个...

    哪个PS后期插件功能最多最强? 风光人像全能修图王!一个顶五个 一个顶五个?真的假的,怎么计算出来的? 真的,这一个插件可以顶 人像磨皮 风光滤镜 高低频 双曲线 亮度蒙版 饱和度蒙版 调色预设 PS ...

  4. enfp工具箱怎么用_5个很少人知道的黑科技工具箱,功能奇妙,一个顶十个用

    原标题:5个很少人知道的黑科技工具箱,功能奇妙,一个顶十个用 平时我们上网或者在使用手机的时候,是不是因为各种各样的操作需要下载很多各式各样的软件?今天要来说说5个实用的黑科技工具箱,手机端网页端都有 ...

  5. 8个压箱底的资源网站,一个顶十个,再也不用到处找资源了

    分享8个压箱底的资源网站,个个都让人相见恨晚,免费且资源丰富,一个顶几十个,有了它们就有了用不完的资源! 1.电子书资源:Libgen 一个超好用的电子书搜索下载网站,里面的资源非常丰富,小说.电子教 ...

  6. 云鲸扫拖一体机器人说明书_Narwal云鲸扫地机器人真“扫拖一体”,能扫能拖,一个顶俩...

    在国外Kickstarter网站众筹达114万美元,被国外权威媒体评为CES2019最佳产品,并获得清水湾资本.明势资本和盈峰资本领投,被科技行业称为现象级产品的Narwal云鲸扫地机器人正式回归国内 ...

  7. python实现成语接龙接到指定成语(一个顶俩的扩展版)

    昨天找到了新华字典的json就很开心,想到了一个顶俩那个项目,自己也想做一个接到口谐辞给.(因为没有给字开头的成语) 思路 算法过程其实很简单,就是广搜就可以,使用队列这个数据结构,每次pop一个,然 ...

  8. GPU 编程 CPU 异同点_一个顶俩 十一代酷睿用上Xe架构GPU:笔记本还要独显吗?_...

    2020年10月21日 21:20 作者:黄页 编辑:黄页 2020年笔记本电脑变得比以往更加重要,生产力愈发强大. 原因也不复杂,就是今年的疫情导致远程办公成为刚需,笔记本电脑几乎是上班族人手一台, ...

  9. 华强北airpods三代连接安卓手机没声音_如何真正的选择一个顶配的华强airpods?...

    很多人都想买一个真正顶配版本的华强北airpods,毕竟对大部分人来说原装正品的价格是无法承担的,而现在好的华强北版本也就两百左右,差一点的要一百多,三者权衡利弊,有很多人也选择了顶配版本 一个东西的 ...

  10. 如何成为一个顶流游戏up主?

    说到游戏录制,我第一个想到的人就是大马猴--旭旭宝宝,一个人扛起了DNF的大旗,不光网友们对他的评价很高,带人亲切真诚,一点架子都没有,而且直播时风格也是蛮搞笑的,这就是他拥有超高人气的原因吧. 最近 ...

最新文章

  1. 华为云AI开发部总经理罗华霖:华为人工智能的实践与创新
  2. jpa单向一对多关联映射
  3. decode bytes in position 2-3: truncated \UXXXXXXXX escape
  4. 华为harmonyos公测,华为鸿蒙 Harmony OS 2.0 第二轮公测已开启,赶紧申请报名
  5. 优雅的找出ArrayList中重复的元素
  6. 【转载】使用tf.py_func函数增加Tensorflow程序的灵活性
  7. 数据结构 创建顺序表
  8. java调试 Linux_Linux上调试java项目
  9. 熬,是人生最深的滋味
  10. navicat输入法问题
  11. 【STC8A8K64S4A12开发板】—小白做GPIO点灯实验
  12. 移动网络安装测试软件,adsl网速测试(中国移动宽带专用测速软件)
  13. 招银网络-信息科技风险管理工程师-笔试-安全
  14. 利用Android源码,轻松实现汉字转拼音功能
  15. html怎么在表格中加虚线,html设置虚线边框的方法详细介绍
  16. 我努力了十年,才让我的老婆不上班
  17. 转换接头PL8000V-B 0-70MPa
  18. 使用VBA操作文件(1):使用Excel对话框
  19. 在axure中实现商品数量加减效果,原型库网站讲师-金乌 解答同学问
  20. C#调用12306API做余票查询

热门文章

  1. 如何弥补mac系统存在的局限性
  2. 类别的作用?继承和类别在实现中有何区别
  3. 玩Mega8 智能充电器-12. 终于实现-dV检测(转)
  4. C# WinForm技巧“将Form嵌入到Panel”
  5. Windows Server 2008 R2的教程36篇!
  6. 01_项目需求与实体分析(servlet+java bean+jsp的商城教程)
  7. springsecurity3的验证过程
  8. [HTML] Prettify 代码高亮使用总结
  9. Vue-Quill-Editor富文本编辑器的使用
  10. HTML方式显示邮件无法打开,HTML格式的电子邮件不能正确显示