我有两个DataTables
DataTable1(默认值) -
Tag |Alias|Value |Type abc |"" |default|default xyz |"" |default|default
DataTable2(带实际值) -
Tag |Alias |Value |Type abc |test |12 |Real
现在,如果我使用DataTable.Merge(),我会得到标记为abc的默认值和实际值的行.我只需要第二个表中存在的特定标记的实际值,如果不是第一个表中的默认值.我该怎么做呢?
只需Tag在合并之前向列添加主键约束.
例:
var dt1 = new DataTable();
var prime1 = dt1.Columns.Add("Tag", typeof(string));
dt1.Columns.Add("Value", typeof(string));
dt1.Rows.Add(new object[]{"abc", "default"});
dt1.Rows.Add(new object[]{"xyz", "default"});
dt1.PrimaryKey = new DataColumn[]{ prime1 };
var dt2 = new DataTable();
var prime2 = dt2.Columns.Add("Tag", typeof(string));
dt2.Columns.Add("Value", typeof(string));
dt2.Rows.Add(new object[]{"abc", "12"});
dt2.PrimaryKey = new DataColumn[]{ prime2 };
dt1.Merge(dt2);
Run Code Online (Sandbox Code Playgroud)
dt1 现在看起来像:

| 归档时间: |
|
| 查看次数: |
11221 次 |
| 最近记录: |