如何根据另一个DataTable列值更新数据表列值?

时间:2012-04-04 06:05:10

标签: c# datatable dataset

我有两个数据表

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

我想根据其他数据表列值更新其中一个列的值。

例如:

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

dt2包含相同的列

我想更新[setFamilyno]的{​​{1}}列。

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

2 个答案:

答案 0 :(得分:0)

尝试使用DataRelation创建ForeignKeyConstraint。帮助将足以知道如何做到这一点。

答案 1 :(得分:0)

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++;

                }

}