1. 程式人生 > >模糊查詢+分頁

模糊查詢+分頁

/// <summary>
        /// 查詢員工
        /// </summary>
        /// <param name="queryString">待查詢的字串</param>
        /// <returns></returns>
        public static IList<Xlzt.DataAccessLayer.Member> QueryMember(out int totleCount, int pageNum, int pageSize,String queryString)
        {
            
try { using (Xlzt.DataAccessLayer.CRM_DBEntity db = new CRM_DBEntity()) { //按員工姓名,工號,部門三個欄位模糊查詢 var result = db.Members.OrderBy(c=>c.account).Where(obj => obj.name.StartsWith(queryString) || obj.name.EndsWith(queryString) || obj.name.IndexOf(queryString) != -1
|| obj.account.StartsWith(queryString) || obj.account.EndsWith(queryString) || obj.account.IndexOf(queryString) != -1 || obj.department.StartsWith(queryString) || obj.department.EndsWith(queryString) || obj.department.IndexOf(queryString) != -1 );
//獲取總記錄數目 totleCount = result.ToArray().Length; //獲取請求頁的最大索引 int max = (result.ToArray().Length <= pageNum * pageSize) ? result.ToArray().Length : pageNum * pageSize; if (max < (pageNum - 1) * pageSize) { //請求頁的最大索引比它上一頁的最大索引還小:矛盾 return null; } else if (max < pageSize * pageNum) { //請求頁是左後一頁 return result.Skip((pageNum - 1) * pageSize).ToList();//使用Skip時要使用OrderBy } else { //請求頁正常返回 return result.Skip((pageNum - 1) * pageSize).Take(pageSize).ToList(); } } } catch (Exception) { totleCount = 0; return null; } }