最近用到一个功能,遍历一个表,找出满足条件的数据,插入另一张表,并当前表中的行,避免重复插入且优化系统性能。
例如:一个表包含BelongName,MarketProjectID,Year,Month,要从这个表中找板块1在2012年的工程数量,示例如下:
为了节约资源及优化代码,在循环中就要移除已获取记录的行,所以这里用到三张表,一张源数据复制表(内层循环:确保所有数据都要被遍历到),一张源数据表(外围循环表,记录被移除行后的最新源数据表),一张结果表(用于记录所需要的最终结果)。
/// <summary>
/// 获取空表
/// </summary>
/// <returns></returns>
private DataTable GetNullDt()
{
DataTable dtResultNull = new DataTable();
dtResultNull.Columns.Add("Name");
dtResultNull.Columns.Add("Num");
dtResultNull.Columns.Add("Ratio");
dtResultNull.PrimaryKey = new DataColumn[] { dt