i have DataTable which can have duplicate rows.
(我有可以有重复行的数据表。)
In the picture highlighted columns have all the same values. (图片中突出显示的列具有相同的值。)
I would need to identify those rows and sum the salary( in original table is "jamekol"). (我需要标识这些行并加薪(在原始表中为“ jamekol”)。)
and i want to sum all duplicate Name's salary value like this :
(我想像这样将所有重复的Name的薪水总和求和:)
here is my orginal table :
(这是我的原始表:) Note : i need all columns .
(注意:我需要所有列。)
Can anyone suggest how to do that? (谁能建议该怎么做?)
DataTable new_Table = new DataTable();
new_Table.Columns.Add("radif");
new_Table.Columns.Add("sh_factor");
new_Table.Columns.Add("t_factor");
new_Table.Columns.Add("Taraf");
new_Table.Columns.Add("m_taraf");
new_Table.Columns.Add("mantaghe");
new_Table.Columns.Add("jam");
new_Table.Columns.Add("jamekol");
new_Table.Columns.Add("m_kartkhan");
new_Table.Columns.Add("m_takhfif");
new_Table.Columns.Add("n_karbar");
new_Table.Columns.Add("sh_sanad");
new_Table.Columns.Add("code");
new_Table.Columns.Add("m_tasvie");
new_Table.Columns.Add("m_porsant");
new_Table.Columns.Add("d_takhfif");
new_Table.Columns.Add("m_maliat");
new_Table.Columns.Add("m_avarez");
new_Table.Columns.Add("n_taraf");
new_Table.Columns.Add("v_moravede");
var groupedByState = dt.AsEnumerable()
.GroupBy(r => r.Field<String>("Taraf"));
foreach (var group in groupedByState)
{
DataRow maxPremRow = group.OrderByDescending(r => r.Field<String>("Taraf")).First();
DataRow newRow = new_Table.Rows.Add();
newRow.SetField("id_po", group.Key);
newRow.SetField("Status", maxPremRow.Field<string>("Status"));
newRow.SetField("Cost_ex", group.Sum(r => r.Field<double?>("Cost_ex")));
newRow.SetField("Taraf", maxPremRow.Field<string>("Taraf"));
newRow.SetField("jamekol", group.Sum(r => r.Field<double?>("Cost_ex")));
newRow.SetField("radif", maxPremRow.Field<string>("radif"));
newRow.SetField("sh_factor", maxPremRow.Field<string>("sh_factor"));
newRow.SetField("t_factor", maxPremRow.Field<string>("t_factor"));
newRow.SetField("m_taraf", maxPremRow.Field<string>("m_taraf"));
newRow.SetField("mantaghe", maxPremRow.Field<string>("mantaghe"));
newRow.SetField("jam", maxPremRow.Field<string>("jam"));
newRow.SetField("m_kartkhan", maxPremRow.Field<string>("m_kartkhan"));
newRow.SetField("m_takhfif", maxPremRow.Field<string>("m_takhfif"));
newRow.SetField("n_karbar", maxPremRow.Field<string>("n_karbar"));
newRow.SetField("sh_sanad", maxPremRow.Field<string>("sh_sanad"));
newRow.SetField("code", maxPremRow.Field<string>("code"));
newRow.SetField("m_tasvie", maxPremRow.Field<string>("m_tasvie"));
newRow.SetField("m_porsant", maxPremRow.Field<string>("m_porsant"));
newRow.SetField("d_takhfif", maxPremRow.Field<string>("d_takhfif"));
newRow.SetField("m_maliat", maxPremRow.Field<string>("m_maliat"));
newRow.SetField("m_avarez", maxPremRow.Field<string>("m_avarez"));
newRow.SetField("n_taraf", maxPremRow.Field<string>("n_taraf"));
newRow.SetField("v_moravede", maxPremRow.Field<string>("v_moravede"));
}
radGridView3.DataSource = new_Table;
ask by programmer translate from so 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…