顯示具有 LINQ 標籤的文章。 顯示所有文章
顯示具有 LINQ 標籤的文章。 顯示所有文章

2023年6月25日 星期日

[ASP.NET + LINQ] LINQ超入門 - 試聽 - 查詢(Query)語法與方法(Method)語法


Youtube影片網址  影片連結

9vs1.com網站優惠折扣,"LINQ超入門 " 由此直連  https://www.9vs1.com/go/?i=87pcf6zfmfbi

ASP .NET MVC 完整課程,適用.NET 6.0/7.0/8.0。超過 120小時"(外面買不到) 已開始販售,請來信詢問(一定有優惠!) mis2000lab (at) yahoo.com.tw; school (at) mis2000lab.net。謝謝您
課程列表與大綱,請看 mis2000lab.pixnet.net/blog/post/35172535

學員感言與推薦 - www.dotblogs.com.tw/mis2000lab/2023/01/30/mis2000lab_MVC_onlineLearning2023

9vs1 . com網站的三天入門課程 9vs1.com/go/?i=192277ff2276

第一天 ASP.NET MVC 完整影片(5.5小時 / .NET 4.x版)免費試聽。詳見 mis2000lab.pixnet.net/blog/post/35141956   。  這位學員學了半年,公司幫他加薪150%(真人真事)   www.dotblogs.com.tw/mis2000lab/2020/09/23/ASPnet_MVC_online_20200923

初學者第一天的MVC入門課程。一般的網站(購物商城、新聞媒體)有哪些必備功能,我們學習MVC也能做到嗎?MVC又是什麼?能否讓我一個範例就懂?

這是一門程式設計的課,會講解程式碼,建議使用「大螢幕」觀賞。謝謝。
看完一次之後,第二次觀賞時,請看一段(就暫停),親手做一段!
務必親自動手做!不要只是看!


2023年6月24日 星期六

[ASP.NET + LINQ] LINQ超入門 - 課程試聽

youtube影片網址 https://youtu.be/JvXYZSbIkFE

9vs1 .com網站優惠折扣,"LINQ超入門 " 由此直連 https://www.9vs1.com/go/?i=87pcf6zfmfbi ASP .NET MVC 完整課程,適用.NET 6.0/7.0/8.0。超過 120小時"(外面買不到) 已開始販售,請來信詢問(一定有優惠!) mis2000lab (at) yahoo.com.tw; school (at) mis2000lab.net。謝謝您 課程列表與大綱,請看 mis2000lab.pixnet.net/blog/post/35172535 學員感言與推薦 - www.dotblogs.com.tw/mis2000lab/2023/01/30/mis2000lab_MVC_onlineLearning2023 9vs1 . com網站的三天入門課程 9vs1.com/go/?i=192277ff2276 第一天 ASP.NET MVC 完整影片(5.5小時 / .NET 4.x版)免費試聽。詳見 mis2000lab.pixnet.net/blog/post/35141956 。 這位學員學了半年,公司幫他加薪150%(真人真事) www.dotblogs.com.tw/mis2000lab/2020/09/23/ASPnet_MVC_online_20200923 初學者第一天的MVC入門課程。一般的網站(購物商城、新聞媒體)有哪些必備功能,我們學習MVC也能做到嗎?MVC又是什麼?能否讓我一個範例就懂? 這是一門程式設計的課,會講解程式碼,建議使用「大螢幕」觀賞。謝謝。 看完一次之後,第二次觀賞時,請看一段(就暫停),親手做一段! 務必親自動手做!不要只是看!

2018年4月16日 星期一

ASP.NET MVC分頁(.Skip() 與.Take())

之前的文章,提到網頁程式分頁的寫法。
使用SQL 2012起可用的 OFFSET-FETCH,搭配ADO.NET (DataReader)來做分頁(Paging)。

[讀書心得]資料分頁的最佳化,以SQL 2012的OFFSET-FETCH為例
http://mis2000lab.pixnet.net/blog/post/33836306


[習題]上集 Ch 14-4 撰寫ADO.NET DataReader的分頁程式#3(搭配SQL 2012指令 OFFSET...FETCH)
http://mis2000lab.pixnet.net/blog/post/35057446  或是
https://mis2000lab.blogspot.tw/2018/04/ch-14-4-adonet-datareader3sql-2012.html


這個範例改成 ASP.NET MVC 的 LINQ語法,其實大同小異。

原本的SQL指令:
//== ADO.NET 參數的寫法 ==
String SqlStr = "Select test_time, id, title, summary from test Order By id
OFFSET @Page1 ROWS FETCH NEXT @Page2 ROWS ONLY";

        SqlCommand cmd1 = new SqlCommand(SqlStr, Conn);
        cmd1.Parameters.AddWithValue("@Page1", NowPageCount);
        cmd1.Parameters.AddWithValue("@Page2", PageSize);

如果我的說法沒錯的話,這是我「個人」整理出來的重點:
OFFSET X ROWS   代表你忽略了前面幾筆記錄(也就是從這裡  開始讀取,從頭開始算起,第一"頁"的編號請用「零」代表 )
FETCH NEXT Y ROWS ONLY  代表你從「第幾列」向後 讀取 (我 只要 這幾列的記錄即可!)

Offset.....與後面的 FETCH,其實跟下面的 .Skip() 與 .Take() 功能類同。

(from m in _db.UserTables
                orderby m.UserId   // 若寫 descending ,則是反排序(由大到小)
                select m).Skip(NowPageCount).Take(PageSize);


======= 程式碼如下 ======================(start)

        public ActionResult IndexPage(int id=1)
        {
            // id變數,目前位於第幾頁?
            // PageSize變數,每一頁,要展示幾筆記錄?         
            int PageSize = 3;

            // NowPageCount,目前正在觀賞這一頁的紀錄
            int NowPageCount = 0;
            if (id == 0)   {
                NowPageCount = (id - 1) * PageSize;    // PageSize,每頁展示3筆紀錄(上面設定過了)
            }

            // 這段指令的 .Skip()與 . Take(),其實跟T-SQL指令的 offset...fetch....很類似(SQL 2012起可用)
            var ListAll = (from m in _db.UserTables
                           orderby m.UserId   // 若寫 descending ,則是反排序(由大到小)
                           select m).Skip(NowPageCount).Take(PageSize);    // .Skip() 從哪裡開始(忽略前面幾筆記錄)。 .Take()呈現幾筆記錄

            if (ListAll == null)
            {   // 找不到任何記錄
                return HttpNotFound();
            }
            else   {
                return View(ListAll.ToList());
            }

        }

======= 程式碼如上 ======================(end)

執行時,自行輸入「URL網址」與「頁數」即可
例如:http://....../控制器名稱/IndexPage/3






如下圖。畫面最底下的「分頁列」也可以套用,
跟以前的寫法一樣,幾乎不需更動。

唯一更動的地方就是上面提到的:「ADO.NET + SQL指令」改成「LINQ」