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

透視Datatable

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

  現在,以表格的形式顯示的數據是任何應用程序的重要組成部分。但有時你需要以數據行格式顯示大量的數據。如果行數巨大,它變得非常難以分析。在這種情況下,您可能希望使用其他格式統計你的數據,如: charts, graphs, groups, pivots等 。本文將介紹一種使用適當的聚合函數的方式來透視你的數據,它可以很容易提高您的報表功能。

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

  為了簡化方案,我把表的結果分三個區域顯示:RowField, DataField, 和ColumnFields,除了這些,Pivot類提供一些供您來選擇的聚合函數來綁定的數據。可提供的選項有:

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

      代碼主要包含了一個名字為"Pivot"的類,在它的構造函數中創建DataTable。 ColumnFields 是一個字符串數組參數,它允許你透視多列數據。這個類還包含了一個實際透視你數據的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技術透視Datatable,轉載需保留來源!

    鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

  • 主站蜘蛛池模板: 国产免费不卡 | 色姣姣狠狠撩综合网 | 亚洲人成无码久久久AAA片 | 扒开女生尿口 | 亚洲麻豆精品成人A在线观看 | 亚洲一卡二卡三卡四卡无卡麻豆 | 暖暖日本手机免费完整版在线观看 | 精品无码国产AV一区二区三区 | 精品国产乱码久久久人妻 | 久久激情影院 | 欧美日韩一区二区三区四区 | 欧美日韩亚洲一区视频二区 | 亚洲国产免费观看视频 | 欧美国产精品主播一区 | 妺妺窝人体色777777野大粗 | 苍老师刺激的120分钟 | 欧美成人免费一区二区三区不卡 | 秋霞最新高清无码鲁丝片 | 99久久99久久久精品久久 | 久热这里只有精品99国产6 | 黄色精品视频 | 哺乳溢出羽月希中文字幕 | 国产第一页在线视频 | 99免费观看视频 | 快播av种子 | 亚洲 日本 欧美 中文字幕 | 男人吃奶摸下挵进去啪啪 | 久久中文字幕免费视频 | 蜜桃AV色欲A片精品一区 | 2021精品高清卡1卡2卡3麻豆 | 男男h开荤粗肉h文1v1 | 天美传媒在线观看免费完整版 | 久久久性色精品国产免费观看 | 国产精品99久久久久久宅男AV | 99福利视频 | 亚州天堂在线视频av | 国产精品一区二区资源 | 日本久久免费大片 | 国产精品免费小视频 | 夜月视频直播免费观看 | 精品一二三区久久AAA片 |