前一段时间做了一个数据比对的工作,大致的要求是这样:
- 首先从A库导出产品的数据模型到Excel中,导出完成时记录导出产品条目以及产品结构到B库的Model表和Partstr表中。
- 然后就是每隔一段固定时间系统自动进行数据比对(系统自动执行比对服务详见http://blog.csdn.net/u012147433/article/details/48730591)
- 如果有A、B库中的数据有不同,则记录数据到B库的Model表和Partstr表中的标识字段上,便于后续的下载或者更新数据。
针对以上的要求,大致将编码工作氛围以下的思路:
- 首先读取B库中Model表的内容,读取出Model表中存在的产品(略过数据导出到Excel的过程)
- 循环Model中存在的产品,分别从A、B库中循环取出对应该产品的结构datatableA和datatableB,初始设定Bool Changed=fasle
- 在某一个产品的循环内,先以datatableA为标准一条条的对比datatableB中的数据,如果datatableA中存在而datatableB不存在,则将该条数据加入到Partstr表中并在标识字段上标明Add,Changed=true
- 在某一个产品的循环内,再以datatableB为标准一条条的对比datatableA中的数据,如果datatableB中存在而datatableA不存在,则将该条数据的标识字段标明delete,Changed=true
- 在某一个产品的循环内,只要有对比数据不同,均会在Model表中做上标识,表明该产品数据有变更
- 在一个产品循环之后,再循环下一个产品,直到把存在于Model表中的所有产品都循环对比完成
*Step1——循环Model中存在的产品,分别从A、B库中循环取出对应该产品的结构datatableA和datatableB*
1.读取datatableA和datatableB的过程略,在这里主要介绍一下两张数据库表Model和Partstr