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;
            }
    

      

  • 相关阅读:
    [Python] 登录人人网2011版
    [WPF] 自定义窗体样式
    [Python] 控制台输入密码的方法
    [Python] 字符串加密解密
    [WPF] 模仿AMD LIVE! EXPLORER界面
    [Python] Visual Studio 2008 集成 IronPython 开发环境
    mysql表类型(存储引擎)
    logstash收集nginx访问日志
    linux设置开机启动脚本
    logstash安装log4j插件
  • 原文地址:https://www.cnblogs.com/liuchang/p/3990615.html
Copyright © 2011-2022 走看看