在c#中替换基于另一个的数据表中的所有匹配值

时间:2015-02-27 13:51:35

标签: c#

我有一个像这样的dataTable:  enter image description here

和第二个这样的: enter image description here

如何根据表{1}中的值替换表2中的值MIN_QUANTITY,MAX_QUANTITY,DISCOUNT_VALUE

PS :第二个表中的GEN_CODE不是唯一的,可以复制,并且还应在第一个表中添加重复的行 我试图使用:

GEN_CODE

但是没有添加重复行如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

假设您将表1和表2的每次出现都存储到"记录"将数据表的每一列都作为属性的类。 可以使用LINQ轻松完成。

我们假设表1中的记录存储在List<record> List1中,而表2中的其他记录存储在List<records> List2中。

foreach (record reference_record in List1)
{
      foreach(record record_to_update in List2.Where(x=>x.GEN_CODE == reference_record.GEN_CODE).Select(x=>x).ToList())
      {
          record_to_update.MIN_QUANTITY = reference_record.MIN_QUANTITY;
          record_to_update.MAX_QUANTITY = reference_record.MAX_QUANTITY;
          record_to_update.DISCOUNT_VALUE = reference_record.MAX_QUANTITY;
       }
}

您需要在以下类中绑定数据表:

public class record
{
    public string GEN_CODE { get; set; }
    public string PRODUCT_NAME { get; set; }
    public string MIN_QUANTITY { get; set; }
    public string MAX_QUANTITY { get; set; }
    public string DISCOUNT_VALUE { get; set; }
    //... add other properties here
}