程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> 關於ASP.NET >> 微型項目實踐(12):查詢與顯示

微型項目實踐(12):查詢與顯示

編輯:關於ASP.NET

上一篇中,我們分析了頁面中的控件和數據綁定中的擴展方法,今天我們看數據的查詢和顯示。其中 ,數據的查詢屬於業務邏輯層(Business),而顯示屬於UI層。

假設我們要根據以下兩個條件進行查詢:

日志分類(ID)

發布時間(范圍)

兩者為“AND”的關系,則查詢可以通過通過擴展IQueryable<Blog>類實現,該功能定義在 BlogExtension類中(位於DongBlog.Business\Blogs\Blog.cs文件中),代碼如下:

  1: /// <summary>
  2: /// 根據日志分類取得日志
  3: /// </summary>
  4: /// <param name="query">日志查詢</param>
  5: /// <param name="blogClassID">日志分類ID</param>
  6: /// <param name="createDataTimeStart">日志發表的起始時間</param>
  7: /// <param name="createDataTimeEnd">日志發表的結束時間</param>
  8: /// <returns>該分類下的日志</returns>
  9: public static List<Blog> GetBlogsBy(this IQueryable<Blog> query,
     int? blogClassID, DateTime? createDataTimeStart, DateTime? createDataTimeEnd)
 10: {
 11:   if (query == null)
 12:     throw new ArgumentNullException("query");
 13: 
 14:   var q = query.AsQueryable();
 15: 
 16:   if (blogClassID.HasValue)
 17:     q = q.Where(b => b.BlogClassID == blogClassID.Value);
 18:   if (createDataTimeStart.HasValue)
 19:     q = q.Where(b => b.CreateDateTime > createDataTimeStart.Value);
 20:   if (createDataTimeEnd.HasValue)
 21:     q = q.Where(b => b.CreateDateTime < createDataTimeEnd.Value);
 22: 
 23:   return q
 24:     .OrderByDescending(b => b.CreateDateTime)
 25:     .ToList();
 26: }

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved