[英]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.