C# DataTable合并重复行,并使部分列值相加
在处理C#DataTable时,合并重复行,并相加相关值,例如金额等,代码如下:
DataTable detail_dt = (DataTable)DrugDetail.DataSource;
//绑定之后判断是否有重复数据,重复数据进行合并
if (detail_dt != null){
for (int i = 0; i < detail_dt.Rows.Count; i++){
//两层循环判断表格内是否有数据重复,如果有则合并加上数量即可
for (int j = i+1; j < detail_dt.Rows.Count;) {
if (detail_dt.Rows[i]["drug_code"].ToString() == detail_dt.Rows[j]["drug_code"].ToString()&& detail_dt.Rows[i]["serial"].ToString() == detail_dt.Rows[j]["serial"].ToString()) {
detail_dt.Rows[i["amount"]=Convert.ToDouble(detail_dt.Rows[i]["amount"]) +Convert.ToDouble(detail_dt.Rows[j]["amount"]);
detail_dt.Rows[j].Delete();
}
else {//这里是若没有数据重复,则取下一行继续比较,若重复了则因为删除了一行,不需要执行j++进行下一行取值。
j++;
}
}
}
}