簡體   English   中英

如何在C#中將數據表中的數據分組

[英]How to group data in datatable in c#

我有一個像這樣的數據表(我從Excel工作表中獲取數據)。 我正在將Excel工作表轉換為數據表。 現在我需要格式化數據。 這就是我的數據表的樣子。

Lead    EMPnames
vinay    kumar
vinay    manju.u
vinay    kiran
anitha   manju.k
anitha   rahul
sandeep  arjun
sandeep  manu
rohit     sandeep
rohit     vinay
rohit     anitha

現在,我需要像這樣格式化數據表:

Lead     EMPnames
vinay    kumar
         manju.u
         kiran
sandeep  arjun
         manu
anitha   manju.k
         rahul
rohit    sandeep
         vinay
         anitha

任何想法如何做到這一點? 任何幫助,將不勝感激

謝謝。

您為什么不將linq與“ group by”子句一起使用?

例如,請參見以下鏈接中的示例3:

http://msdn.microsoft.com/zh-CN/vcsharp/aa336754.aspx#simple1

我們采用了數組中的頭名。

string[] srLead = { "vinay", "sandeep", "anitha", "rohit" };

然后獲取源數據表並根據潛在客戶名稱對其進行過濾,然后添加到新的數據表中:

    #region Grouping by Teamlead
    DataTable dtGroup = new DataTable();
    dtGroup = dtResult.Clone();
    foreach (DataColumn dc in dtResult.Columns)
    {
        dc.DataType = typeof(string);
    }
    dtGroup.AcceptChanges();

    foreach (string s in srLead)
    {
        string name = s;
        DataTable dtsource = new DataTable();
        dtsource = TeamLeadFilter(dtResult, name);
        CombineDatatable(ref dtGroup, dtsource);
        dtGroup.AcceptChanges();
    }
    #endregion

    #region TeamLeadFilter
    public DataTable TeamLeadFilter(DataTable dtResult, string str)
    {
        DataView dvData = new DataView(dtResult);
        dvData.RowFilter = "TeamLead ='" + str + "'";
        return dvData.ToTable();
    }
    #endregion

    #region CombineDatatable
    public DataTable CombineDatatable(ref DataTable destini, DataTable source)
    {
        foreach (DataRow dr in source.Rows)
        {
            destini.ImportRow(dr);
        }
        return destini;
    }
    #endregion  

通過這種方式,我解決了這個問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM