【问题标题】:How to update a datatable column value depending on another DataTable column values?如何根据另一个 DataTable 列值更新数据表列值?
【发布时间】:2012-04-17 20:13:51
【问题描述】:

我有两个数据表

DataTable dt1=new DataTable();
DataTable dt2=new DataTable();

我想根据其他数据表列值更新列值之一。

例如:

dt1 包含列 [setFamilyno] ["HouseNo"] ["Surname"]

dt2 包含相同的列

我想更新dt1 DataTable[setFamilyno] 列。

  • 如果dt1["HouseNo"] ["Surname"] 等于dt2["HouseNo"] ["Surname"],则为 dt1 表中的所有此类匹配设置 dt1 DataTable 的值 1。对于dt2["HouseNo"] ["Surname"] 的下一行等于dt1["HouseNo"] ["Surname"],然后为所有此类匹配设置[setfamilyno]=2 的值..

【问题讨论】:

    标签: c# datatable dataset


    【解决方案1】:

    尝试使用ForeignKeyConstraint 创建DataRelation。帮助将足以知道如何去做。

    【讨论】:

      【解决方案2】:
      DataView view = new DataView(Datatble);
      int viewcount = view.Count;
      
      
      DataTable distinctValues = view.ToTable(true, "SurNameEnglish", "HouseNumber");
      int distinctcount = distinctValues.Rows.Count;
      
      int cnt = 1;
       for (int j = 0; j < distinctcount; j++)
                      {
      
                          string surname = distinctValues.Rows[j]["SurNameEnglish"].ToString();
                          string Housenumber = distinctValues.Rows[j]["HouseNumber"].ToString();
                          for (int i = 0; i < viewcount; i++)
                          {
                              if (Datatble.Rows[i]["SurNameEnglish"].Equals(surname) && Datatble.Rows[i]["HouseNumber"].Equals(Housenumber))
                              {
      
      
      
                                  Datatble.Rows[i]["Family"] = cnt;
                                  Datatble.AcceptChanges();
      
                              }
                          }
                          cnt++;
      
                      }
      
      }
      

      【讨论】:

        猜你喜欢
        • 2019-08-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-11-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多