顯示具有 分頁 標籤的文章。 顯示所有文章
顯示具有 分頁 標籤的文章。 顯示所有文章

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」











[習題]上集 Ch 14-4 撰寫ADO.NET DataReader的分頁程式#3(搭配SQL 2012指令 OFFSET...FETCH)

摘要:[習題]上集 Ch 14-4 撰寫ADO.NET DataReader的分頁程式#3(搭配SQL 2012指令 OFFSET...FETCH)

速度比起 ROW_Number差不多,
但比較起來,新的寫法比 ROW_Number省資源





上一篇文章,也是透過SQL指令來進行資料分頁
遠比在「HTML畫面上」寫程式分頁快速多了!!

今天看書時,發現一個新的指令
SQL 2012起,多了 OFFSET...FETCH的指令來輔助  Order By,也可以做資料分頁喔。
教學影片  https://www.youtube.com/watch?v=37q5qez6cbU

如果您是撰寫 ASP.NET MVC,分頁的原理其實雷同。
請參閱  http://mis2000lab.pixnet.net/blog/post/35057473
或是  https://mis2000lab.blogspot.tw/2018/04/aspnet-mvcskip-take.html




當然,您跟我一樣,花十分鐘看一下SQL Server大師  --德瑞克的網站就會了

啊!!!!!!!!德瑞克大師的功力灌頂之後,
 我馬上把我的分頁程式改成這樣
只花了兩分鐘!!!!!(因為我資質弩鈍,花了一點時間練習)
  
請打開書本,或是參閱以前的範例
把SQL指令改成這樣
        //========================
        //== 組合SQL指令 =============
        SqlDataReader dr = null;

//== 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);


        dr = cmd1.ExecuteReader();
        //== 第三,自由發揮 ======================
        while (dr.Read())
        {
            haveRec = true;   // 後續省略......
 完成了!YA!!


如果我的說法沒錯的話,這是我「個人」整理出來的重點:
OFFSET X ROWS   代表你忽略了前面幾筆記錄(也就是從這裡  開始讀取,從頭開始算起,第一筆的編號請用「零」代表 )
FETCH NEXT Y ROWS ONLY  代表你從「第幾列」向後 讀取 (我 只要 這幾列的記錄即可!)
  
根據 SQL Server大師  --德瑞克 文章裡面的說法
--  速度比起 ROW_Number差不多,
--  但比較起來,新的寫法比 ROW_Number省資源

  
這裡是微軟 msdn網站的說明(中文) -- http://technet.microsoft.com/zh-tw/library/gg699618(v=sql.110).aspx
使用 OFFSET - FETCH 的限制
  • ORDER BY 會強制使用 OFFSET 和 FETCH 子句。
  • OFFSET 子句則強制搭配 FETCH 使用。您絕對不可以使用 ORDER BY … FETCH。
  • TOP 不可以在相同查詢運算式中與 OFFSET 和 FETCH 結合。
  • OFFSET/FETCH 資料列計數運算式可以是任何將傳回整數值的算術、常數或參數運算式。資料列計數運算式不支援純量子查詢。
  
下列範例示範 OFFSET-FETCH 子句搭配 ORDER BY 的使用方式。
範例 1:略過已排序之結果集的前 10 個資料列,並傳回其餘資料列。 
SELECT * FROM [test] ORDER BY id     OFFSET 10 ROWS;

 範例 2:略過已排序之結果集的前 5 個資料列,並傳回接下來的 5 個資料列 
SELECT * FROM [test] ORDER BY id 
           OFFSET 5 ROWS FETCH NEXT 5 ROWS ONLY;  
執行成果如下圖


如果您是撰寫 ASP.NET MVC,分頁的原理其實雷同。

請參閱  http://mis2000lab.pixnet.net/blog/post/35057473
或是  https://mis2000lab.blogspot.tw/2018/04/aspnet-mvcskip-take.html


相關文章:

http://mis2000lab.pixnet.net/blog/post/33836306

2017年1月9日 星期一

19/30 ADO.NET與資料庫 #2 -- ADO.NET程式 DataReader為何不能分頁?

從上一篇文章起( http://mis2000lab.blogspot.com/2017/01/1830-adonet-1-adonet.html
我們開始自己寫程式 作資料存取
DataSet / DataReader兩者的差異,可以參閱這篇文章
** 初探ADO.NET #2,DataReader 與 DataSet(資料集)**
https://dotblogs.com.tw/mis2000lab/archive/2008/08/15/4919.aspx
ADO.NET程式 DataReader為何不能分頁?
這句話是什麼意思?
「從資料來源讀取「順向」且「唯讀」的資料流」,有範例示範一下,為我說明嗎?

後續的範例也會跟各位介紹 「DataReader + 自己寫SQL指令做分頁」
  1. 當我們要查詢數據時,如果數據量太大,要自己寫SQL指令做 "分頁" 呈現。
    您在Google查到一千筆數據,Google也是分成一頁一頁的呈現吧?
  2. 畫面的呈現,可以透過GridView、Repeater(這東西 "預設"不提供分頁功能)來呈現,但分頁功能則是我們自己寫的。或是透過 DataReader來呈現每一頁的數據。
這些範例在後續都會為您介紹。
順便也分享一篇文章。
如果您對於DataReader / DataSet想進一步瞭解,我收集了許多前輩的經驗談
[ADO.NET] Web Form為求快速,可使用 DataReader直接處理資料來源
https://dotblogs.com.tw/mis2000lab/2012/01/13/dataset_datareader_20120113
下一篇文章,讓我們開始動手寫程式--
ADO.NET與資料庫 #3 -- 跨平台(Web + Windows)的程式與範例

2016年12月21日 星期三

無限下拉的資料呈現 (類似FaceBook,分頁效果)#1 - jQuery + Web Service + Repeater控制項

類似臉書(FaceBook),您一直向下閱讀資訊。到了瀏覽器底部又會長出(呈現出)新的數據。
這也是一種「分頁」的技巧。參考網路上的範例,我改用SQL 2012的 OFFSET...FETCH 來做 (本文提供範例下載 & Youtube教學影片)

您可以先到原網站看看 Demo效果。VB & C#範例都有。

原作者  使用 SQL 2005起的「資料分頁 - Row_Number」來做,
搭配 Repeater控制項 + Web Service + jQuery三者,算是一個整合範例。

簡單地說,流程如下:
    (1).  第一次執行時,展示十筆記錄。
    (2). 當您拉到網頁下方時,觸發 jQuery效果,以AJAX的方式跟Web Service查詢接下來的「後十筆」記錄,並在畫面上繪製表格。
        $(window).scroll(function () {
            if ($(window).scrollTop() == $(document).height() - $(window).height()) {
                  // 您的程式......
            }
        });
    (3).  如此周而復始,就好像臉書(FaceBook)一樣,您一直向下閱讀,資料源源不絕,沒完沒了。

這些技巧以前都有分享過,請看:
................................................................................................................................................
................................................................................................................................................

YouTuber教學影片  https://youtu.be/h5Zof9ZZRP4
  
我修改成 SQL 2012的資料分頁( OFFSET...FETCH)作法,原理差不多。
 速度比起 ROW_Number差不多, 但比較起來,新的寫法比 ROW_Number省資源 
-----------------------------------------------------------------------------------------------------
首先,使用 Repeater控制項。
這東西比較單純,也不會產生過多的怪標籤。有利於後續搭配 jQuery大量複製 HTML表格(

畫面的部分,我沒有修正,您可以參閱原範例

我主要修正後置程式碼 C# 的部分,不像原範例還需要一段SQL Server預存程序來做。
using System.Data;
using System.Data.SqlClient;
using System.Web.Services;  //*** Web Service 會用到 ***
using System.Web.Configuration;


    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)  // 第一次執行
        {   // 自己寫的副程式,從第一頁開始。
            Repeater1.DataSource = MIS2000Lab_GetPageData(1);   
            Repeater1.DataBind();
        }
    }


    // ***** 分頁。使用SQL指令進行分頁 *****
    public static DataSet MIS2000Lab_GetPageData(int currentPage)
    {
        SqlConnection Conn = new SqlConnection("資料庫的連結字串");

        String SqlStr = "Select * from Customers ORDER BY [CustomerID] ASC ";
        SqlStr += " OFFSET @A ROWS FETCH NEXT 10 ROWS ONLY";
        // 為了配合前端的jQeury,這裡的第一頁不可以是"零",需是一。程式改成 ((currentPage-1) * 10)
        //==SQL 2012 指令的 Offset...Fetch。參考資料: http://sharedderrick.blogspot.tw/2012/06/t-sql-offset-fetch.html  

        SqlDataAdapter myAdapter = new SqlDataAdapter(SqlStr, Conn);
        myAdapter.SelectCommand.Parameters.AddWithValue("@A", ((currentPage - 1) * 10));       
        DataSet ds = new DataSet();
        myAdapter.Fill(ds, "Customers");

        //-- 用來計算分頁的「總頁數」 ---      
        SqlCommand cmd = new SqlCommand("select Count(CustomerID) from Customers", Conn);
        Conn.Open();           
        int myTotalCount = (int)cmd.ExecuteScalar();

        DataTable dt = new DataTable("PageCount");
        dt.Columns.Add("PageCount");
        dt.Rows.Add();
        dt.Rows[0][0] = myTotalCount;
        ds.Tables.Add(dt);

        if (Conn.State == ConnectionState.Open)  {
            Conn.Close();
            Conn.Dispose();
        }

        return ds;
    }

    
    [WebMethod]
    public static string GetCustomers(int pageIndex)
    {
        return MIS2000Lab_GetPageData(pageIndex).GetXml();
    }

因為要搭配前端的 jQuery,所以上述程式的「第一頁」,不寫成「0」而改成「1」。
您要修改 "前端" HTML畫面時,要注意幾點:

抱歉,因為程式碼貼上後,排版錯亂,只好貼圖!

或是來這裡,複製程式碼 -- http://mis2000lab.pixnet.net/blog/post/34529733-%E7%84%A1%E9%99%90%E4%B8%8B%E6%8B%89%E7%9A%84%E8%B3%87%E6%96%99%E5%91%88%E7%8F%BE%20(%E9%A1%9E%E4%BC%BCFaceBook%EF%BC%8C%E5%88%86%E9%A0%81%E6%95%88%E6%9E%9C)%20-%20jQuery%20+%20Web%20Service%20+%20Repeater%E6%8E%A7%E5%88%B6%E9%A0%85


分享,讓知識更加偉大  :-)

檔名:
      [CS]無限下拉的Repeater_jQeury_WebService.rar
      [VB]無限下拉的Repeater_jQeury_WebService.rar

下一篇文章(相關範例)

  
我將思想傳授他人, 他人之所得,亦無損於我之所有;
猶如一人以我的燭火點燭,光亮與他同在,我卻不因此身處黑暗。----Thomas Jefferson
寫信給我--  mis2000lab (at) yahoo.com.台灣  或是  school (at) mis2000lab.net
................   facebook社團   https://www.facebook.com/mis2000lab   ......................
................   Google+   https://plus.google.com/100202398389206570368/posts ........
................  YouTube (ASP.NET) 線上教學影片  http://goo.gl/rGLocQ



下一篇文章:    http://mis2000lab.blogspot.tw/2016/12/facebook-2.html

無限下拉的資料呈現 (類似FaceBook,分頁效果) #2 - 圖片版的首頁

http://mis2000lab.blogspot.tw/2016/12/facebook-2.html

無限下拉的資料呈現 (類似FaceBook,分頁效果) #2 - 圖片版的首頁

新瓶裝舊酒(jQuery + Web Service)類似臉書(FaceBook),您一直向下閱讀資訊。到了瀏覽器底部又會長出(呈現出)新的數據。
這也是一種「分頁」的技巧。這次改用「圖片」呈現。
首頁上,無窮無盡的圖片一直向下拉(向下閱覽)

請您先看上一篇文章:

無限下拉的資料呈現(文字版)
http://mis2000lab.blogspot.tw/2016/12/facebook1-jquery-web-service-repeater.html
........................................................................................................
有讀者來信詢問這個網頁的效果
http://www.andenhud.com.tw/products/sale_products_list.php?cid=184
(若您上班時點閱,請注意!上面是 女性內衣 的購物網站)
您不斷向下拉、向下閱讀
產品 "圖片"會不斷跑出來,類似臉書(FaceBook)無限下拉的資料呈現

我不知道他是怎麼做的?
但如果您想要有類似的效果(特效)

只要把之前的範例(有 Youtube教學影片 & 範例下載)從原本的 "文字"呈現,改成 "圖片"呈現而已。
YouTuber教學影片  https://youtu.be/h5Zof9ZZRP4


原本的範例(上一篇文章),您不斷向下拉,就會有新文字、新文章出現
現在改成「您不斷向下拉,出現的是 "圖片"」罷了

您可以搭配書本的範例資料表  FileUpload_DB
稍微修改上面文章的範例,就能搞定。

抱歉!因為程式碼貼上後,版面錯亂,所以貼圖展示。

若您要察看程式碼,也可以到此參考 --  http://mis2000lab.pixnet.net/blog/post/34529725-%E7%84%A1%E9%99%90%E4%B8%8B%E6%8B%89%E7%9A%84%E8%B3%87%E6%96%99%E5%91%88%E7%8F%BE%20(%E9%A1%9E%E4%BC%BCFaceBook%EF%BC%8C%E5%88%86%E9%A0%81%E6%95%88%E6%9E%9C)%20#2%20-%20%E5%9C%96%E7%89%87%E7%89%88%E7%9A%84%E9%A6%96%E9%A0%81
..........(後續省略)......

3.  後置程式碼,僅修改資料表名稱、SQL指令即可。            


本範例不提供程式下載
      您可以先到原網站看看 Demo效果。VB & C#範例都有。
      原作者使用 SQL 2005起的「資料分頁 - Row_Number」來做,搭配 Repeater控制項 + Web Service + jQuery三者,算是一個整合範例。
      我改用SQL 2012的 OFFSET...FETCH 來做分頁

  
我將思想傳授他人, 他人之所得,亦無損於我之所有;
猶如一人以我的燭火點燭,光亮與他同在,我卻不因此身處黑暗。----Thomas Jefferson

寫信給我--  mis2000lab (at) yahoo.com.台灣  或是  school (at) mis2000lab.net
................   facebook社團   https://www.facebook.com/mis2000lab   ......................
................   Google+   https://plus.google.com/100202398389206570368/posts ........
................  YouTube (ASP.NET) 線上教學影片  http://goo.gl/rGLocQ

[YouTube影片] GridView + DetailsView兩者的資料與"頁數"連動

2009年發表的範例,連我都忘了發表在書本裡面。這次錄製成Youtube影片分享。
兩個控制項的「分頁」連動、互動 -- PageIndexChanging事件
深入探索 .NET資料存取:ADO.NET + SqlDataSource+ LINQ
ISBN13:9789572245682
出版社: 松崗。



YouTube影片: https://youtu.be/fGxCODffrmU


過去寫過的「分頁」範例頗多,但有些無法整理在書本裡面
趁這次有空整理,把所有手邊的範例、BLOG上的讀書心得等等
統整在這本新書裡面(2016/8月上市)-- http://m.sanmin.com.tw/Product/Index/005895863

深入探索 .NET資料存取:ADO.NET + SqlDataSource+ LINQ
ISBN13:9789572245682
出版社: 松崗。本書約 840頁。



本書目錄如下:
以前發表在 Youtube上的影片,都收錄在本書裡面
Part I:資料庫連線篇
第1章 程式與資料庫互動的四大步驟
商用應用程式連結資料庫是最早的第一步,不管是ASP.NET、PHP、JSP作法都雷同,本章我們將來了解這四大步驟為何。範例 ADO.NET程式的四大步驟--以DataReader為例
第2章 Connection資料庫連結
資料庫的連結(Connection)與相關的應用(MARS多重結果作用集、交易),常用的屬性與方法都會在本章介紹。
第3章 SQL Server連結共用(Connection Pooling)
集區(Pool)的建立及指派,以範例為您實作ClientConnectionId屬性。
第4章 Microsoft Azure雲端資料庫與LocalDb
介紹如何連結雲端資料庫(Microsoft Azure)以及SQL Server的LocalDB與範例安裝。
Part II:DataReader篇
第5章 SqlDataReader類別與常用方法
SqlDataReader觀念解說以及各種DataReader的應用範例與Case Study。
第6章 DataReader常用屬性
SqlDataReader常用方法與屬性的介紹。
第7章 SqlCommand類別
介紹SqlCommand的方法與應用情境,並告訴您如何避免SQL Injection的攻擊。
Part III:DataSet篇
第8章 DataSet(資料集)+ DataAdapter(資料配接器)
介紹Web網頁與Windows程式,使用DataSet的差異?以及何時該用DataReader和DataSet?
第9章 DataTable與DataView
本章介紹如何將DataColumn(資料行、欄位)、DataRow(資料列、記錄)加入DataTable。以及DataAdapter如何將不同資料來源加入DataSet。
第10章 DataAdapter與SqlDataAdapter類別
為您介紹DataAdapter(資料配接器)物件與DataSet 範例實作,MissingMappingAction 與MissingSchemaAction 屬性。以及SqlDataAdapter 的四個Command與參數的寫法,用來批次處理大量的SQL命令的UpdateBatchSize屬性。
Part IV:應用實戰篇
第11章 跨平台ADO.NET程式(Windows Form,exe執行檔)
本章介紹如何將ASP.NET網頁使用的ADO.NET改寫成Windows Form版(.exe檔)。範例 跨平台ADO.NET程式,把您的ASP.NET DataReader變成Windows Form(.exe檔)
第12章 自訂分頁(Paging),從資料來源進行「分頁」
本章的分頁程式,從DataSet 基礎入門版到每十頁區隔的進階版都有介紹,並且真正從資料來源作分頁。也為您介紹.NET 4.5 起的GridView自訂分頁—AllowCustomPaging 與 VirtualItemCount屬性。範例 [.NET 4.5]GridView自訂分頁的新屬性,AllowCustomPaging與 VirtualItemCount #2 範例 - DataReader +資料庫分頁
第13章 分頁優化與最佳化,StringBuilder、SQL指令的改善
字串相連是網頁程式常用的技巧,本章將告訴您何時用String 或StringBuilder讓程式更有效率,並從實務中驗證各種T-SQL 指令的分頁成效,例如:TOP 與Where、ROW_NUMBER 與OFFSET...FETCH。範例 ASP.NET資料分頁的SQL指令--ROW_NUMBER與OFFSET...FETCH
Part V:網路服務篇
第14章 SOA服務導向應用程式(I)─ Web Service(.asmx)
介紹Web Service(Web 服務,ws-*)可用的資料型態與JSON 格式,可以搭配各種前端畫面。本章包含:透過Web Service 做Single Sign-on(SSO)、使用交易(Transaction)、SoapException例外狀況。
第15章 SOA服務導向應用程式(II)— WCF服務
本章介紹WCF功能與Microsoft技術的整合、WCF架構與Server/Client端實作,以及WCF文件中常用的詞彙解析。
第16章 jQuery、AJAX與Web Service
本章討論jQuery函式庫入門與應用,讓您遊歷DOM、控制事件,並搭配Web Service一同運作。範例 [ASP.NET]無限下拉的資料呈現 (類似FaceBook,分頁效果) - jQuery + Web Service + Repeater控制項
Part VI:進階範例篇
第17章 GridView 100%自己動手寫程式
以ADO.NET為您示範手動撰寫GridView各種功能,如DataReader + SqlCommand,以及DataSet + SqlDataAdapter。
第18章 非同步(Async)ADO.NET程式設計
介紹非同步程式設計概論,(.NET 2.0).BeginExecuteReader() 與.EndExecuteReader()方法。
第19章 .NET 4.5起的非同步(Async)ADO.NET程式設計
.NET 4.5 起的「非同步」存取,寫法更簡單。您可以學會傳回類型與新的非同步方法。我們還會以實務範例介紹BLOB、文字檔與XML 檔與資料庫的應用。範例 [ASP.NET].NET 4.5 非同步程式,從一張圖知道原來如此 (async & await)
第20章 資料庫交易(Transaction)與SqlBulkCopy單一大量複製
資料庫交易(Transaction)與TransactionScope 類別,該如何與SQL Server 整合?本章將為您介紹CommittableTransaction 類別與分散式交易SqlConnection 的.EnlistTransaction() 方法、SqlTransaction 類別與巢狀try...catch 擷取例外狀況。並為您解析交易的效率之爭與SqlBulkCopy 單一批次大量複製(包含非交易 & 交易兩種案例)
Part VII:ASP.NET SqlDataSource篇
第21章 DataSource控制項,資料來源控制項
本章將為您介紹資料來源控制項與資料繫結控制項,還有相關的資料繫結(綁定)與.DataBind() 方法。
第22章 SqlDataSource類別(只限Web Form可用)
DataSourceMode屬性可以自己動手設定,讓效能更好。也可以動手寫程式搭配「參數」避免資料隱碼攻擊。本章範例包含SqlDataSource的例外狀況處理(e.ExceptionHandled = true)與CRUD應用範例SqlDataSource範例與進階功能。
第23章 SqlDataSource 範例與進階功能
本章提供下列範例讓您功力倍增,包含:新增、刪除、修改時,遇見空白則取消。利用.Select()方法,自訂「輸出」畫面,手動呈現查詢的成果。以及SqlDataSource的快取和SqlCacheDependency屬性介紹。範例 ADO.NET #4(改),自己設定輸入畫面,讓SqlDataSource幫我們「新增」一筆資料
Part VIII:補充加強篇
第24章 參數與資料型別、SqlParameterCollection類別
本章介紹參數的用法讓您避開SQL Injection資料隱碼攻擊,包含SqlCommand & SqlDataAdapter的參數寫法、ParameterDirection屬性、SqlParameterCollection 類別、常用屬性與方法。
第25章 站內的搜尋引擎(I)─ 基礎入門
本章為範例實戰,為您實作單一欄位&多重欄位的搜尋(觀念解說)、操作SqlDataSource,或是自己動手撰寫「搜尋」程式。
第26章 站內的搜尋引擎(II)─ 範例應用
本章為範例實戰,教您實作用CheckBoxList輸入「複選」搜尋條件、輸入多重關鍵字的搜尋(String.Join()方法),最後搭配一個整合範例 ─ 將方法與資料表抽離,寫成類別檔。範例 [ASP.NET 微軟範例] 簡單搜尋引擎 #1 (類別檔入門)& 關鍵字的「高亮度(HighLight)」顯示
第27章 開放式並行存取(Optimistic Concurrency)
為您解析「封閉式」&「開放式」並行存取的觀念。範例 SqlDataSource 開放式並行存取 (Optimistic Concurrency),以GridView為例
第28章 企業函式庫Enterprise Library 6.0的DAAB
介紹以工廠模式撰寫的企業函式庫,其中與資料存取相關的DAAB是本文重點。
Part IX:LINQ篇
第29章 LINQ與ADO.NET
LINQ(整合查詢語法)的入門與觀念解析,為您介紹LINQ-to-DataSet、LINQ-to-SQL。
第30章 LINQ語法簡介與實戰
本文為LINQ語法實作,包含:查詢(Query)、資料來源、類型的關聯性與轉換、Case Study與各種查詢語法、Lambda運算式、聯結(join)等等。


我將思想傳授他人, 他人之所得,亦無損於我之所有;
猶如一人以我的燭火點燭,光亮與他同在,我卻不因此身處黑暗。----Thomas Jefferson
寫信給我--  mis2000lab (at) yahoo.com.台灣  或是  school (at) mis2000lab.net
................   facebook社團   https://www.facebook.com/mis2000lab   ......................
................   Google+   https://plus.google.com/100202398389206570368/posts ........
................  YouTube (ASP.NET) 線上教學影片  http://goo.gl/rGLocQ