• nhibernate 分页


     /// <summary>
            /// 分页
            /// </summary>
            /// <param name="pageNumber">页码</param>
            /// <param name="pageSize">每页显示行数</param>
            /// <param name="NiceName">昵称</param>
            /// <param name="phone">电话</param>
            /// <returns></returns>
            public List<UserInfo> Search(int pageNumber, int pageSize, string NiceName, string phone)
            {
                ISession session = null;
                try
                {
                    List<string> idList = new List<string>();
                    idList = (List<string>)SearchIdList();
                    session = SessionFactory.OpenSession();
                    ICriteria criteria = session.CreateCriteria(typeof(UserInfo));
                    criteria.Add(Restrictions.In("Id", idList));
                    if (NiceName != "")
                    {
                        criteria.Add(Restrictions.Like("NickName", "%" + NiceName + "%"));
                    }
                    if (phone != "")
                    {
                        criteria.Add(Restrictions.Like("Mobile", "%" + phone + "%"));
                    }
                    criteria.AddOrder(Order.Desc("InputDate"));
                    criteria.SetFirstResult(pageSize * pageNumber - pageSize);//开始位置
                    criteria.SetMaxResults(pageSize);//每页数据大小
                    IList<UserInfo> result = criteria.List<UserInfo>();
                    return result.ToList();
                }
                catch (Exception ex)
                {
                    //记录日志
                    SqlAccessLogger.Write("UserInfoDAL.Search(List<string> idList)", "UserInfoDAL.Search() ", ex);
                    //抛出异常
                    throw;
                }
                finally
                {
                    if (session != null && session.IsOpen)
                    {
                        session.Close();
                    }
                }
            }

      /// <summary>
            /// 分页总数据行数
            /// </summary>
            /// <param name="pageNumber">页码</param>
            /// <param name="pageSize">每页显示行数</param>
            /// <param name="NiceName">昵称</param>
            /// <param name="phone">电话</param>
            /// <returns></returns>
            public int GetTotalCount(int pageNumber, int pageSize, string key, string phone)
            {
                ISession session = null;
                try
                {
                    List<string> idList = new List<string>();
                    idList = (List<string>)SearchIdList();
                    session = SessionFactory.OpenSession();
                    ICriteria criteria = session.CreateCriteria(typeof(UserInfo));
                    criteria.Add(Restrictions.In("Id", idList));
                    if (key != "")
                    {
                        criteria.Add(Restrictions.Like("NickName", "%" + key + "%"));
                    }
                    if (phone != "")
                    {
                        criteria.Add(Restrictions.Like("Mobile", "%" + phone + "%"));
                    }
                    IList<UserInfo> result = criteria.List<UserInfo>();
                    return result.Count;
                }
                catch (Exception ex)
                {
                    //记录日志
                    SqlAccessLogger.Write("UserInfoDAL.Search(List<string> idList)", "UserInfoDAL.Search() ", ex);
                    //抛出异常
                    throw;
                }
                finally
                {
                    if (session != null && session.IsOpen)
                    {
                        session.Close();
                    }
                }
            }

    基于这两个方法就可以实现数据分页了。

    ICriteria 的简单学习地址:http://blog.knowsky.com/213234.htm

  • 相关阅读:
    vue CDN seting
    AutoMapper
    c# list<class> to datatable
    vue watch
    net core 3.1 open file
    net core 3.1 area Global
    net core 3.1 area
    ef core log
    3.1 ef core
    3.1 daper
  • 原文地址:https://www.cnblogs.com/miao817/p/3441511.html
Copyright © 2020-2023  润新知