文章出處

LINQ分頁和排序,skip和Take 用法

dbconn.BidRecord.OrderBy(p=>p.bid_id).ToList<BidRecord>().OrderBy(p => p.bid_id).Skip(skip).Take(take).ToList<BidRecord>();

上面就是分頁帶排序的方法。

說一下問什么這樣做

dbconn 是Modle的對象

BidRecord 是一個實體

P=〉p.bid_id 是排序的條件

OrderBy 是排序(后面是條件)然后要查詢所有的,在所有的數據中在查詢你要分頁的數據,skip是在分頁在前有多少條數據,也就是在當前頁數據之前的數據總和, (跳過序列中指定數量的元素,然后返回剩余的元素。)pageSize*(pageIndex-1),Take 是返回多少條數據,也就是pageSize!

2.關于Linq排序的問題:

linq中orderby 默認是升序(A-〉Z),可以添加 descending指定為降序(Z-〉A)

order by n descending

3.對出錯信息:LINQ to Entities 不支持指定的類型成員“Date”。只支持初始值設定項、實體成員和實體導航屬性。解決方案

  

DateTime date=DateTime.Parse(transDate);
                    data = data.Where(p => EntityFunctions.DiffDays(p.TranDate,date)==0);

 4.linq里不能有方法

5.datatable使用groupby進行分組統計 [2]

如果要使用group by的話,可以使用linq,這是C#3.0的內容。給你個示例
static void Main(string[] args)
{
    DataTable dt = new DataTable();
    dt.Columns.Add("A");
    dt.Columns.Add("B");
    dt.Columns.Add("C");
    dt.Rows.Add("a1", "b1", "c1");
    dt.Rows.Add("a1", "b2", "c2");
    dt.Rows.Add("a2", "b3", "c3");
    dt.Rows.Add("a3", "b4", "c4");
    dt.Rows.Add("a1", "b5", "c5");
    dt.Rows.Add("a2", "b6", "c6");
    IEnumerable<IGrouping<string, DataRow>> result = dt.Rows.Cast<DataRow>().GroupBy<DataRow, string>(dr => dr["A"].ToString());//按A分組
    foreach (IGrouping<string, DataRow> ig in result)
    {
        Console.WriteLine("當A="+ig.Key + "");
        Console.WriteLine("A".PadRight(10) + "B".PadRight(10) + "C".PadRight(10));
        Console.WriteLine("=====".PadRight(10) + "=====".PadRight(10) + "=====".PadRight(10));
        foreach (var dr in ig)
            Console.WriteLine(dr["A"].ToString().PadRight(10) + dr["B"].ToString().PadRight(10) + dr["C"].ToString().PadRight(10));

    }
    Console.Read();
}

 


文章列表


不含病毒。www.avast.com
arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()