1.在表的所有列上设置主键
2.合并表进行比较
3.确定并从 DataRowState 中提取重复行
此过程仅提取重复(完全匹配)的行。
也可以只提取有差异的行(不匹配)。
由于它使用主键,因此如果表中包含 Null,则无法使用它。
整个过程
(1) 数据表的构建
(2) 主键设置
③AcceptChange并将表2合并为表1
④从表1中提取修改的行
(5) 提取结果的日志输出
分为五个序列。
下面让我们一一来看看。
(1) 数据表的构建
创建两个具有相同结构的数据表。
为了清楚起见,这里我们使用“构建数据表”活动,
可以通过 Excel 中的 ReadRange 或从 Web 上抓取数据来创建数据表。
表的内容如下。
红框内的记录是两个表中都存在(重复)的记录。
这一次,我们将提取这条红色记录。
(2) 主键设置
使用表 1 中的所有列设置主键(更准确地说,复合主键)。
存储 DataColumn 的集合类型变量数据列1并声明
在迭代中将表 1 的所有 DataColumns 添加到该变量中,
在表1的PrimaryKey(主键)数据列1用 ToArray 转换为数组并传递。
③AcceptChange并将表2合并为表1
对表1执行AcceptChange方法得到DataRowState后,
将表 2 合并到表 1 中。
④从表1中提取修改的行
合并端的表 1 有 DataRowState 分为以下三个。
- 添加: 添加的记录 = 只存在于表 2 中的记录
- 修改的:changed 记录 = 两个表中都存在记录
- 不变: 未改变的记录 = 只存在于表 1 中的记录
如果您使用 GetChanges 方法检索 DataRowState 已修改的记录,您将能够检索(重复)两个表中都存在的记录。
如果要获取有差异的记录,只需获取 DataRowState 为 Additional 和 Unchanged 的记录并合并它们即可。
(5) 提取结果的日志输出
将提取的记录(表)转换为字符串并输出到日志。
结果如下。
只有两个表中都存在的记录才能被成功提取。
谢谢你的辛劳工作。
操作环境
UiPath.System.Activity 21.10.4
参考
原创声明:本文系作者授权爱码网发表,未经许可,不得转载;
原文地址:https://www.likecs.com/show-308626274.html