C#查询数据库的两种方式

        //分页获取停车记录
        public ParkEventSearchResultForWebDTO GetParkLogListFromDB(ParkEventSearchConditionDTO sc)
        {
            try
            {
                ParkEventSearchResultForWebDTO returnObj = new ParkEventSearchResultForWebDTO();
                returnObj.list = new List<ParkLogDTO>();
                string whereStr = "";
                if (ConvertDataTimeToLong(sc.enterStartTime) > 0)
                {
                    if (whereStr != "") whereStr += " and";
                    whereStr = whereStr + string.Format(" x.EnterTime > '{0}' ", sc.enterStartTime.ToString("yyyy-MM-dd HH:mm:ss"));
                }
                if (ConvertDataTimeToLong(sc.enterEndTime) > 0)
                {
                    if (whereStr != "") whereStr += " and";
                    whereStr = whereStr + string.Format(" x.EnterTime < '{0}' ", sc.enterEndTime.ToString("yyyy-MM-dd HH:mm:ss"));
                }
                if (ConvertDataTimeToLong(sc.leaveStartTime) > 0)
                {
                    if (whereStr != "") whereStr += " and";
                    whereStr = whereStr + string.Format(" x.LeaveTime > '{0}' ", sc.leaveStartTime.ToString("yyyy-MM-dd HH:mm:ss"));
                }
                if (ConvertDataTimeToLong(sc.leaveEndTime) > 0)
                {
                    if (whereStr != "") whereStr += " and";
                    whereStr = whereStr + string.Format(" x.LeaveTime < '{0}' ", sc.leaveEndTime.ToString("yyyy-MM-dd HH:mm:ss"));
                }
                if (!string.IsNullOrEmpty(sc.license))
                {
                    if (whereStr != "") whereStr += " and";
                    whereStr = whereStr + string.Format(" x.CarNumber = '{0}' ", sc.license);
                }
                if (sc.enterDevId != null)
                {
                    if (whereStr != "") whereStr += " and";
                    whereStr = whereStr + string.Format(" x.EnterDevid = '{0}' ", sc.enterDevId);
                }
                if (!string.IsNullOrEmpty(sc.cardCode))
                {
                    if (whereStr != "") whereStr += " and";
                    whereStr = whereStr + string.Format(" x.CardCode = '{0}' ", sc.cardCode);
                }
                if (sc.leaveDevId != null)
                {
                    if (whereStr != "") whereStr += " and";
                    whereStr = whereStr + string.Format(" x.LeaveDevid = '{0}' ", sc.leaveDevId);
                }
                String orderStr = " order by x.EnterTime desc";
                String hql = "select x from ParkLog x " + (whereStr != "" ? ("where" + whereStr) : "") + orderStr; ;
                IQuery query = ParkLogDao.GetSession().CreateQuery(hql);
                List<ParkLog> tempList = query.List<ParkLog>().ToList();

                returnObj.total = tempList.Count();
                if (sc.pageSize == 0)
                    sc.pageSize = 20;
                if (sc.pageNum == 0)
                    sc.pageNum = 1;
                if (returnObj.total % sc.pageSize == 0)
                {
                    returnObj.pages = returnObj.total / sc.pageSize;
                }
                else
                {
                    returnObj.pages = returnObj.total / sc.pageSize + 1;
                }

                int start = (sc.pageNum - 1) * sc.pageSize;
                int cnt = sc.pageSize;
                if (start >= returnObj.total)
                    return null;

                if ((start + sc.pageSize > returnObj.total))
                {
                    cnt = returnObj.total - sc.pageSize * (sc.pageNum - 1);
                }
                tempList = tempList.GetRange(start, cnt);
                foreach (var item in tempList)
                {
                    returnObj.list.Add(DTOTransfer.ToDTO(item));
                }
                returnObj.pageSize = sc.pageSize;
                returnObj.pageNum = sc.pageNum;
                return returnObj;
            }
            catch (Exception ex)
            {
                LogHelper.GetLog("Server").Error(ExceptionHelper.GetExceptionDesc(ex));
                throw;
            }
        }
        public List<SysUserDTO> GetUserList(UserSearchConditionDTO cond)
        {
            try
            {
                List<SysUser> userLst = null;
                if (cond != null)
                {
                    userLst = _userList.FindAll(item =>
                        (cond.userName == null || item.UserName.Contains(cond.userName))
                        && (cond.LoginName == null || item.LoginName.Contains(cond.LoginName))
                        && (cond.departmentId == null || item.DeptId == (int)cond.departmentId));
                }
                else
                {
                    userLst = _userList;//.FindAll(item => item.DelFlag == null || item.DelFlag == false);
                }
                if (userLst != null && userLst.Count() > 0)
                {
                    List<SysUserDTO> returnValue = new List<SysUserDTO>();

                    foreach (var us in userLst)
                    {
                        var usDto = DTOTransfer.ToDTO(us);
                        SysDepartment sysDep = _deptList.Find(item => item.DeptId == usDto.SysDepartment.DeptId);
                        if (null != sysDep)
                        {
                            //usDto.SysDepartment.DeptName = sysDep.DeptName;
                            usDto.SysDepartment = DTOTransfer.ToDTO(sysDep);
                        }

                        SysUserRole sysUserRole = _userRoleList.Find(item => item.Urid == usDto.UserId);
                        if (null != sysUserRole)
                        {
                            usDto.SysRole = DTOTransfer.ToDTO(_roleList.Find(item => item.RoleId == sysUserRole.RoleId));
                        }
                        returnValue.Add(usDto);
                    }

                    //var userDTOList = userLst.Select(item => DTOTransfer.ToDTO(item)).ToList();
                    return returnValue;
                }
                else
                    return null;



                List<SysUserDTO> listSysUser = new List<SysUserDTO>();
                #region 登录用户不为空的处理
                if (!String.IsNullOrEmpty(cond.LoginName))
                {
                    SysUser sysUserObj = _userList.Find(item => item.LoginName == cond.LoginName);
                    //SysUser sysUserObj = SysUserDao.GetAll(item => item.LoginName == cond.LoginName && (item.DelFlag == null || item.DelFlag == false)).First();
                    if (null == sysUserObj)
                        return null;

                    if (cond.roleId > 0)
                    {// 指定查找用户角色
                        List<SysUserRole> userList = SysUserRoleDao.GetAll(item => item.RoleId == cond.roleId);
                        var userRole = _userRoleList.Find(item => item.RoleId == cond.roleId);
                        if (userRole == null)
                            return null;

                        int flag = 0;
                        foreach (var userListObj in userList)
                        {
                            if (userListObj.UserId == sysUserObj.UserId)
                            {
                                flag = 1;
                                break;
                            }
                        }
                        if (0 == flag)
                            return null;
                    }

                    if (null != cond.onlineState)
                    {
                        if (cond.onlineState != sysUserObj.IsLogin)
                            return null;
                    }

                    if (!String.IsNullOrEmpty(cond.userName))
                    {
                        if (!sysUserObj.UserName.Contains(cond.userName))
                            return null;
                    }

                    SysUserDTO sysUserDto = DTOTransfer.ToDTO(sysUserObj);
                    listSysUser.Add(sysUserDto);
                }
                #endregion
                #region 登录用户为空的处理
                else
                {
                    if (cond.roleId > 0)
                    {
                        List<SysUserRole> userList = SysUserRoleDao.GetAll(item => item.RoleId == cond.roleId);
                        if (0 == userList.Count())
                            return null;

                        foreach (var userListObj in userList)
                        {
                            SysUser sysUserObj = _userList.Find(item => item.UserId == userListObj.UserId);
                            //SysUser sysUserObj = SysUserDao.Get(userListObj.UserId);
                            if (null == sysUserObj)
                                continue;
                            //if (sysUserObj.DelFlag == true)
                            //    continue;

                            if (!String.IsNullOrEmpty(cond.userName) && !(sysUserObj.UserName.Contains(cond.userName)))
                                continue;

                            if (null == cond.onlineState)
                            {
                                SysUserDTO sysUserDto = DTOTransfer.ToDTO(sysUserObj);
                                listSysUser.Add(sysUserDto);
                            }
                            else if (null != cond.onlineState && sysUserObj.IsLogin == cond.onlineState)
                            {
                                SysUserDTO sysUserDto = DTOTransfer.ToDTO(sysUserObj);
                                listSysUser.Add(sysUserDto);
                            }
                        }
                    }
                    else
                    {
                        //var userList = SysUserDao.GetAll();
                        foreach (var userListObj in _userList)
                        {
                            if (!String.IsNullOrEmpty(cond.userName) && !(userListObj.UserName.Contains(cond.userName)))
                                continue;

                            if (null == cond.onlineState)
                            {
                                SysUserDTO sysUserDto = DTOTransfer.ToDTO(userListObj);
                                listSysUser.Add(sysUserDto);
                            }
                            else if (null != cond.onlineState && userListObj.IsLogin == cond.onlineState)
                            {
                                SysUserDTO sysUserDto = DTOTransfer.ToDTO(userListObj);
                                listSysUser.Add(sysUserDto);
                            }
                        }
                    }
                }
                #endregion

                return listSysUser;
            }
            catch (Exception ex)
            {
                Console.WriteLine(ExceptionHelper.GetExceptionDesc(ex));
                throw ex;
            }
        }

 

原文地址:https://www.cnblogs.com/mathyk/p/10098109.html