黄忠成

風雪之閣 - i live,so i writing

黃忠成ID:Code6421
153618次访问,排名490好友0人,关注者23
coding
Code6421的文章
原创 95 篇
翻译 0 篇
转载 0 篇
评论 221 篇
Code6421的公告
關於我:

黃忠成

  • 資深.NET 技術顧問
  • Run! PC 雜誌專欄作者
  • 程序員雜誌文章作者
  • PC Magazine 雜誌專欄作者
  • MSDN 專欄作者
  • MSDN 特約專屬講師
  • Microsoft .NET專屬講師
  • 台灣微軟最有價值專家(MVP 2008)
  • 台灣微軟特約技術顧問


  • 批評,指教,鼓勵, 請 寫信給我
    轉載文章請使用連結模式,
    請勿整篇Copy! 謝謝!


    我所提供的教育訓練:

    Windows Forms
    ASP.NET 2.0
    如有課程需要,請與我聯絡!

  • 我的著作:

  • 最近评论
    chenyong365:我一定会买一本.
    programlin:>>瀏覽器與Office有著同樣的命運,就是最後都會變成一個載體,趨近於OS的地位

    果然是英雄所見略同.
    上次看到一篇文章,大致上的內容是Microsoft正在積極規劃下一代的作業系統,不是Windows,而是一個完全跳脫出Windows概念的新OS.
    我猜想最近這幾年Microsoft推.Net,SOA架構與Windows Live都是……
    programlin:>>瀏覽器與Office有著同樣的命運,就是最後都會變成一個載體,趨近於OS的地位

    果然是英雄所見略同.
    上次看到一篇文章,大致上的內容是Microsoft正在積極規劃下一代的作業系統,不是Windows,而是一個完全跳脫出Windows概念的新OS.
    我猜想最近這幾年Microsoft推.Net,SOA架構與Windows Live都是……
    programlin:>>瀏覽器與Office有著同樣的命運,就是最後都會變成一個載體,趨近於OS的地位

    果然是英雄所見略同.
    上次看到一篇文章,大致上的內容是Microsoft正在積極規劃下一代的作業系統,不是Windows,而是一個完全跳脫出Windows概念的新OS.
    我猜想最近這幾年Microsoft推.Net,SOA架構與Windows Live都是……
    Code6421:to gutes,

    呃..我也不知道怎麼辦....我書的出版權是在金禾,
    不過金禾.....你也知道...Orz
    文章分类
    收藏
      相册
      风雪之阁
      朋友
      LOLOTA
      Moli
      Will 保哥
      匡正
      小朱
      董大偉
      賴榮樞
      存档
      订阅我的博客
      XML聚合  FeedSky
      订阅到鲜果
      订阅到Google
      订阅到抓虾
      订阅到BlogLines
      订阅到Yahoo
      订阅到GouGou
      订阅到飞鸽
      订阅到Rojo
      订阅到newsgator
      订阅到netvibes

      原创 Effective Using LINQ To SQL (1) - 分頁技巧收藏

      新一篇: 當VS2005 遇上 LINQ | 旧一篇: 談極意之道-.NET Framework 3.5 資料庫開發聖典 ASP.NET 篇

       

      Effective Using LINQ To SQL (1) - 分頁技巧
       
      文/黃忠成
       LINQ To SQL支援了SkipTake兩個LINQ函式,這意味著我們只要結合兩者,就能做出以往不容易做出的分頁擷取資料功能。

      using System;
      using System.Collections.Generic;
      using System.Linq;
      using System.Text;
       
      namespace ConsoleApplication19
      {
          class Program
          {
              static void Main(string[] args)
              {
                  NorthwindDataContext context = new NorthwindDataContext();
                  context.Log = Console.Out;
                  int page = 2;
                  var result = (from s1 in context.Customers
                                orderby s1.CustomerID select s1).Skip(page * 10).Take(10);
                  foreach (var item in result)
                      Console.WriteLine(item.CustomerID);
                  Console.ReadLine();
              }
          }
      }

      以上這段程式的意思是,將Customers資料表以CustomerID正向排序,然後以每頁10筆的單位,取得第20-30(也就是第三頁)的資料,下面是其執行結果及SQL Output。

      SELECT [t1].[CustomerID], [t1].[CompanyName], [t1].[ContactName], [t1].[ContactT
      itle], [t1].[Address], [t1].[City], [t1].[Region], [t1].[PostalCode], [t1].[Coun
      try], [t1].[Phone], [t1].[Fax], [t1].[NOTES], [t1].[TEST_ID]
      FROM (
          SELECT ROW_NUMBER() OVER (ORDER BY [t0].[CustomerID]) AS [ROW_NUMBER], [t0].
      [CustomerID], [t0].[CompanyName], [t0].[ContactName], [t0].[ContactTitle], [t0].
      [Address], [t0].[City], [t0].[Region], [t0].[PostalCode], [t0].[Country], [t0].[
      Phone], [t0].[Fax], [t0].[NOTES], [t0].[TEST_ID]
          FROM [dbo].[Customers] AS [t0]
          ) AS [t1]
      WHERE [t1].[ROW_NUMBER] BETWEEN @p0 + 1 AND @p0 + @p1
      ORDER BY [t1].[ROW_NUMBER]
      -- @p0: Input Int (Size = 0; Prec = 0; Scale = 0) [20]
      -- @p1: Input Int (Size = 0; Prec = 0; Scale = 0) [10]
      -- Context: SqlProvider(Sql2005) Model: AttributedMetaModel Build: 3.5.21022.8
       
      EASTC
      ERNSH
      FAMIA
      FISSA
      FOLIG
      FOLKO
      FRANK
      FRANR
      FRANS
      FURIB

      LINQ To SQL善用了SQL Server 2005的ROW_NUMBER指令來完成Skip與Take的功能。
      不過,說實在的,分頁其實最常用在於UI顯示的部份,尤其是ASP.NET應用程式上,而ASP.NET 3.5所提供的LINQDataSource控件已自動會處理分頁動作,所以,設計師自行處理分頁的機會變少了許多。
       Windows FormWPF,因為沒有LINQDataSource可用,所以要處理分頁,得自己來才行,不過,這複雜度可不是僅呼叫SkipTake就能處理了,必須自己實做類似BindingSource的控件才行。
       
       
       

      发表于 @ 2008年04月24日 06:40:18|评论(loading...)|编辑

      新一篇: 當VS2005 遇上 LINQ | 旧一篇: 談極意之道-.NET Framework 3.5 資料庫開發聖典 ASP.NET 篇

      评论:没有评论。

      发表评论  


      登录
      Csdn Blog version 3.1a
      Copyright © Code6421