天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

透視Datatable

  源代碼:/Files/zhuqil/PivotDataTable.zip 

  現(xiàn)在,以表格的形式顯示的數(shù)據(jù)是任何應(yīng)用程序的重要組成部分。但有時(shí)你需要以數(shù)據(jù)行格式顯示大量的數(shù)據(jù)。如果行數(shù)巨大,它變得非常難以分析。在這種情況下,您可能希望使用其他格式統(tǒng)計(jì)你的數(shù)據(jù),如: charts, graphs, groups, pivots等 。本文將介紹一種使用適當(dāng)?shù)木酆虾瘮?shù)的方式來(lái)透視你的數(shù)據(jù),它可以很容易提高您的報(bào)表功能。

  下面的截圖是在GridView中顯示的數(shù)據(jù)透視功能。(關(guān)于數(shù)據(jù)透視還可以參考:ASP.NET實(shí)現(xiàn)類似Excel的數(shù)據(jù)透視表 )

  為了簡(jiǎn)化方案,我把表的結(jié)果分三個(gè)區(qū)域顯示:RowField, DataField, 和ColumnFields,除了這些,Pivot類提供一些供您來(lái)選擇的聚合函數(shù)來(lái)綁定的數(shù)據(jù)??商峁┑倪x項(xiàng)有:

  • Count: 返回匹配的數(shù)據(jù)數(shù)量
  • Sum: 返回匹配的數(shù)據(jù)總和(為了得到總和,將DataField的類型必須轉(zhuǎn)換為decimal類型)
  • First: 返回匹配的數(shù)據(jù)第一項(xiàng)
  • Last: 返回匹配的數(shù)據(jù)最后一項(xiàng)
  • Average: 返回匹配的數(shù)據(jù)平均(為了得到平均值,將DataField的類型必須轉(zhuǎn)換為decimal類型)
  • Max: 返回匹配的數(shù)據(jù)最大值
  • Min: 返回匹配的數(shù)據(jù)最小值
  • Exists: 如果有匹配的數(shù)據(jù),返回“true”,否則“false”

      代碼主要包含了一個(gè)名字為"Pivot"的類,在它的構(gòu)造函數(shù)中創(chuàng)建DataTable。 ColumnFields 是一個(gè)字符串?dāng)?shù)組參數(shù),它允許你透視多列數(shù)據(jù)。這個(gè)類還包含了一個(gè)實(shí)際透視你數(shù)據(jù)的PivotData() 方法。

    代碼public DataTable PivotData(string RowField, string DataField, 
           AggregateFunction Aggregate, 
    params string[] ColumnFields)
    {
        DataTable dt 
    = new DataTable();
        
    string Separator = ".";
        var RowList 
    = (from x in _SourceTable.AsEnumerable() 
            select 
    new { Name = x.Field<object>(RowField) }).Distinct();
        var ColList 
    = (from x in _SourceTable.AsEnumerable() 
                       select 
    new { Name = ColumnFields.Select(n => x.Field<object>(n))
                           .Aggregate((a, b) 
    => a += Separator + b.ToString()) })
                           .Distinct()
                           .OrderBy(m 
    => m.Name);

        dt.Columns.Add(RowField);
        
    foreach (var col in ColList)
        {
            dt.Columns.Add(col.Name.ToString());
        }

        
    foreach (var RowName in RowList)
        {
            DataRow row 
    = dt.NewRow();
            row[RowField] 
    = RowName.Name.ToString();
            
    foreach (var col in ColList)
            {
                
    string strFilter = RowField + " = '" + RowName.Name + "'";
                
    string[] strColValues = 
                  col.Name.ToString().Split(Separator.ToCharArray(), 
                                            StringSplitOptions.None);
                
    for (int i = 0; i < ColumnFields.Length; i++)
                    strFilter 
    += " and " + ColumnFields[i] + 
                                 
    " = '" + strColValues[i] + "'";
                row[col.Name.ToString()] 
    = GetData(strFilter, DataField, Aggregate);
            }
            dt.Rows.Add(row);
        }
        
    return dt;
    }

    NET技術(shù)透視Datatable,轉(zhuǎn)載需保留來(lái)源!

    鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

  • 主站蜘蛛池模板: 欧美性猛交AAA片免费观看 | 20岁中国男同志china1069 20岁αsrian男同志免费 | 青青草原国产在线 | 久久中文字幕亚洲精品最新 | 琪琪婷婷五月色综合久久 | 99热在线精品视频 | 一本道dvd久久综合高清免费 | 特黄大片aaaaa毛片 | 白丝美女被狂躁免费漫画 | qvod影院| 湖南张丽大战黑人hd视频 | 亚洲破处女| 啊轻点灬大JI巴又大又粗 | 99热这里只有的精品 | 欧美另类jizzhd | 国语自产拍在线视频普通话 | 撕烂衣服扒开胸罩揉爆胸 | 美女全光末满18勿进 | 女人高潮时一吸一夹 | 区产品乱码芒果精品P站在线 | 99久久999久久久综合精品涩 | 中文文字幕文字幕亚洲色 | 精品亚洲一区二区在线播放 | 午夜国产理论 | 亚洲欧美国产双大乳头 | 色中色成人论坛 | 亚洲你我色| 边做边爱播放3免费观看 | 国产午夜AV无码无片久久96 | 老头狠狠挺进小莹体内视频 | SM脚奴调教丨踩踏贱奴 | 久久青草费线频观看国产 | 父亲在线日本综艺免费观看全集 | 伦理电影v男人天堂 | 飘雪在线观看免费高清完整版韩国 | 1024人成网站色www下载 | 国内精品欧美久久精品 | 国产午夜精品久久理论片小说 | 一本久道久久综合婷婷五月 | 禁室培欲在线视频免费观看 | 忘忧草日本在线社区WWW电影 |