相信下面这种情况在ASP.NET开发中会时常遇到:查找DataTable_2中的某列数据是否全部出现在DataTable_1中,如果是,则提取部分数据,否则输出提示。
如果是小数据量,任何的循环查找都无所谓。如果大数据量,那就要讲究方法了。本人纠结于这种匹配好久,弄了个测试程序。希望大神能够继续补充更好的算法。
代码主要功能如下:
从两个Exlcel中读取数据,检查dt2的订单编号列数据是否全部出现在dt1的订单编号列。如果未查找到某条数据,则跳出方法。
表1的数据是8356条。(包含很多列,实际开发中数据可能来源于数据库,或者Excel导入。)
表2的数据是8206条。
以下是代码:
protected void Page_Load(object sender, EventArgs e)
{
string pathOrd = HttpContext.Current.Server.MapPath("/天猫数据分析/订单报表/订单报表11月份.xlsx");
string pathPro = HttpContext.Current.Server.MapPath("/天猫数据分析/订单报表/宝贝报表11月份.xlsx");
DateTime timeStart = DateTime.Now;
//自定义方法获取的DataTable
DataTable dtOrd = CLS_StaticFn.getDtFromExcel(pathOrd);
DataTable dtPro = CLS_StaticFn.getDtFromExcel(pathPro);
TimeSpan ts &