• SqlServer分页存储过程(多表查询,多条件排序),Repeater控件呈现数据以及分页


        存储过程(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,存储在数据库中,经过第一次编译后再次调用不需要再次编译,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。存储过程是数据库中的一个重要对象,任何一个设计良好的数据库应用程序都应该用到存储过程。存储过程优点:

        1、重复使用。存储过程可以重复使用,从而可以减少数据库开发人员的工作量。
        2、减少网络流量。存储过程位于服务器上,调用的时候只需要传递存储过程的名称以及参数就可以了,因此降低了网络传输的数据量。
        3、安全性。参数化的存储过程可以防止SQL注入式攻击。

        本文演示使用SqlServer存储过程(多表查询,多条件排序),SqlServer数据访问辅助类、Repeater控件呈现数据以及分页,自定义服务器控件开发,效果如下图1所示。在随附的代码下载中提供了完整的源代码。

    image

    图1 效果图

    演示程序结构

    创建演示程序,我在Visual Studio 2013 选择新建两个项目,第一,C#空白网站项目将该网站命名为TestWeb,添加相关文件夹、CSS文件,JS文件;第二,C#类库命名为TestRun.WebPagerControls,封装分页UI,分页事件。图2 显示了演示程序的整体结构。

    image

    图2 程序的整体结构

    使用SqlServer2008,创建演示数据TestRunDB,添加数据表dbo.tb_Category(产品分类),dbo.tb_Product(产品信息)以及演示数据、分页存储过程dbo.PROC_QueryByPager。图3 显示演示数据库内容

    image

    图3 演示数据库内容

    程序执行

    显示页面Default.aspx

    在Default.aspx显示页面使用两个控件呈现数据以及分页,

    第一,Repeater数据控件

    该控件优点:是一个完全的开发性控件,可以自如的显示用户自定义的显示方式,但是缺点:不支持分页、排序、编辑,仅提供重复模板内容。

    第二,自定义服务器分页控件

    该控件的优点允许完全控制所生成的 HTML,提供更好的设计时支持。可以通过如下语句使用自定义服务器控件,

    注册控件<%@ Register Assembly="TestRun.WebPagerControls" Namespace="TestRun.WebPagerControls" TagPrefix="cc1" %>

    使用控件<cc1:WebPager ID="UPager1" runat="server" PagerStyle="NextPrev" ControlToPaginate="rptData" PageSize="5" OnPageIndexChanged="UPager1_PageIndexChanged" />

    显示页面Defualt.aspx代码,如下图4所示

    image

    图4 显示页面代码

    显示页面Defualt.aspx.cs定义了两个方法,第一BindData方法用于获取数据,第二UPager1_PageIndexChanged是分页事件。Defualt.aspx.cs定义代码如下图5所示

    image

    图5 显示页面Defualt.aspx.cs代码

    自定义服务器分页控件的定义

    自定义服务器控件的代码如下图6所示,由于定义的代码比较多,这里就不全部展开了

    image

    image

    图6 显示Pager.cs代码

    执行分页存储过程

    在QueryProvider.cs文件定义执行分页存储过程,使用SqlHelper辅助类来执行访问数据库。SqlHelper用于简化你重复的去写那些数据库连(SqlConnection),SqlCommand,SqlDataReader等等。SqlHelper 封装过后通常是只需要给方法传入一些参数如数据库连接字符串,SQL参数等,就可以访问数据库了,很方便。代码如下图7所示

    image

    图7 显示QueryProvider.cs代码

    分页存储过程的定义

    在TestRunDB数据库中定义的分页存储过程如下图8所示

    image

    image

    图8 显示分页存储过程的定义语句

    结束

      本文演示使用SqlServer存储过程(多表查询,多条件排序),SqlServer数据访问辅助类、Repeater控件呈现数据以及分页,自定义服务器控件开发,效果如下图1所示。在随附的代码下载中提供了完整的源代码。完整的源代码下载链接

  • 相关阅读:
    js append()和appendChild()和insertBefore()的区别
    webpack打包工具简单案例
    Vue $ref 的用法
    Vue学习笔记-作用域插槽
    Vue学习笔记-插槽基本使用
    Vue学习笔记-父子通信案例
    Echarts案例-折线图
    Echarts案例-柱状图
    软件构造实验三-递归下降分析分析法
    软件构造实验二-拷贝一个c文件 将其中的关键字int替换成float
  • 原文地址:https://www.cnblogs.com/channel9/p/5431883.html
Copyright © 2020-2023  润新知