zoukankan      html  css  js  c++  java
  • SQL 语句 数据分页方法

    #region 数据分页 返回 DataTable
            /// <summary>
            /// 摘要:
            ///     数据分页
            /// 参数:
            ///     sql:传入要执行sql语句
            ///     param:参数化
            ///     orderField:排序字段
            ///     orderType:排序类型
            ///     pageIndex:当前页
            ///     pageSize:页大小
            ///     count:返回查询条数
            /// </summary>
            public DataTable GetPageList(string sql, SqlParam[] param, string orderField, string orderType, int pageIndex, int pageSize, ref int count)
            {
                StringBuilder sb = new StringBuilder();
                try
                {
                    int num = (pageIndex - 1) * pageSize;
                    int num1 = (pageIndex) * pageSize;
                    sb.Append("Select * From (Select ROW_NUMBER() Over (Order By " + orderField + " " + orderType + "");
                    sb.Append(") As rowNum, * From (" + sql + ") As T ) As N Where rowNum > " + num + " And rowNum <= " + num1 + "");
                    count = Convert.ToInt32(this.GetObjectValue(new StringBuilder("Select Count(1) From (" + sql + ") As t"), param));
                    return this.GetDataTableBySQL(sb, param);
                }
                catch (Exception e)
                {
                    DbLog.WriteException(e);
                    return null; ;
                }
            }
            /// <summary>
            /// 摘要:
            ///     数据分页
            /// 参数:
            ///     sql:传入要执行sql语句
            ///     orderField:排序字段
            ///     orderType:排序类型
            ///     pageIndex:当前页
            ///     pageSize:页大小
            ///     count:返回查询条数
            /// </summary>
            public DataTable GetPageList(string sql, string orderField, string orderType, int pageIndex, int pageSize, ref int count)
            {
                return GetPageList(sql, null, orderField, orderType, pageIndex, pageSize, ref  count);
            }
            #endregion
    

      例子:执行完程序后的SQL。

    Select * From (Select ROW_NUMBER() Over (Order By order_id asc) As rowNum, * From (SELECT 
                                E.order_id,
                                E.order_no,
                                E.cust_no, 
                                E.cust_name, 
                                E.or_currency_Name,
                                E.or_ask_money,
                                E.or_sale_uname, 
                                E.or_date,
                                E.touching_uname,
                                E.touching_date,
                                E.or_check,
                                E.or_check_date, 
                                E.or_status,
                                E.or_remark,
                                E.change_uname, 
                                E.change_uid,
                                E.change_date,
                                E.aga_status,
                                Q.op_id,
                                Q.op_matno, 
                                Q.op_matname, 
                                Q.op_matStandard,
                                Q.op_unit,
                                Q.op_unit_id,
                                Q.op_quantity, 
                                Q.op_price,
                                Q.op_money, 
                                Q.op_delivery_date,
                                Q.IsStockNum,
                                Q.NotStockNum,
                                Q.op_remark,
                                Q.pro_code,
                                Q.aga_status as aga_status2,
                                D.dep_type,
    							D.amount           
                                FROM YZOrder as E LEFT JOIN 
                                YZOrder_product as Q on e.order_no = Q.order_no LEFT JOIN 
                                YZ_Depot as D on q.op_matno= D.mat_no WHERE 1=1 AND E.order_no like '' + '%'  AND E.cust_name like '' + '%'  AND Q.op_matno like '' + '%'  AND Q.pro_code like '' + '%'  AND E.touching_date >= '2014/5/9 20:00:00'  AND E.touching_date <= '2014/5/16 20:00:00' ) As T ) As N Where rowNum > 0 And rowNum <= 20
    

      

  • 相关阅读:
    模板 无源汇上下界可行流 loj115
    ICPC2018JiaozuoE Resistors in Parallel 高精度 数论
    hdu 2255 奔小康赚大钱 最佳匹配 KM算法
    ICPC2018Beijing 现场赛D Frog and Portal 构造
    codeforce 1175E Minimal Segment Cover ST表 倍增思想
    ICPC2018Jiaozuo 现场赛H Can You Solve the Harder Problem? 后缀数组 树上差分 ST表 口胡题解
    luogu P1966 火柴排队 树状数组 逆序对 离散化
    luogu P1970 花匠 贪心
    luogu P1967 货车运输 最大生成树 倍增LCA
    luogu P1315 观光公交 贪心
  • 原文地址:https://www.cnblogs.com/lengv10/p/3720518.html
Copyright © 2011-2022 走看看