zoukankan      html  css  js  c++  java
  • 用泛型做的分页类

    /// <summary>
            /// 分页
            /// </summary>
            /// <param name="num">每页的数量</param>
            /// <param name="page">页码</param>
            /// <param name="model">参数列表(用于查询)</param>
            /// <returns></returns>
            public static List<T> GetPagers(int num, int page, T model)
            {
                List<T> tList = new List<T>();
                string name = new T().GetType().Name;
                PropertyInfo[] proList = model.GetType().GetProperties();
                string sqlStr = "select top " + num + "  * from " + name;
                string whereStr = " ";
                foreach (PropertyInfo pi in proList)
                {
                    if (DbHelperSQL.IsPrimaryKey(pi.Name, name) == true)
                    {
                        sqlStr = sqlStr + " where " + pi.Name + " not in (select top (" + num + " * (" + page + "-1))" + pi.Name + " from " + name + " order by OrderDate desc)";
                    }
                }
    
    
                foreach (PropertyInfo pi in proList)
                {
                    if (pi.GetValue(model, null) != null && DbHelperSQL.IsPrimaryKey(pi.Name, name) == false)
                    {
                        string piValue = pi.GetValue(model, null).ToString();
                        if (piValue != "False" && piValue != "0001/1/1 0:00:00" && piValue != "0")
                        {
                            whereStr += " and " + pi.Name + "='" + pi.GetValue(model, null).ToString() + "' order by OrderDate desc";
                        }
                    }
                }
    
                string sql = sqlStr + whereStr;
                DataTable dt = DbHelperSQL.Query(sql).Tables[0];
    
    
                foreach (DataRow dr in dt.Rows)
                {
                    T t = new T();
                    PropertyInfo[] list = t.GetType().GetProperties();
                    foreach (PropertyInfo pi in list)
                    {
                        string piName = pi.Name;
                        if (dt.Columns.Contains(piName))
                        {
                            if (!pi.CanWrite) continue;
                            object value = dr[piName];
                            if (value != DBNull.Value)
                                pi.SetValue(t, value, null);
                        }
                    }
                    tList.Add(t);
                }
                return tList;
            }
    

      

  • 相关阅读:
    【css】border-image
    函数的调用
    函数的返回值
    定义函数的三种形式
    文件处理实战之购物车系统
    文件处理小结
    文件修改的两种方式
    with管理文件操作上下文
    绝对路径和相对路径
    基本的文件操作
  • 原文地址:https://www.cnblogs.com/liuchang/p/3990615.html
Copyright © 2011-2022 走看看