一个重构的实现

[ 530 查看 / 0 回复 ]

把老大的代码,用 Linq to Dataset 重构了一下。。老大一眼就看出,我以前写 若类型 的代码很少(拼SQL字符串,总是差什么单引号之类的)。。
  1. private ItemExp FetchOneItem(DataTable dt, string _GilCode, string _ItemsCode, string _ReportDate)
  2.         {
  3.             ItemExp tmpIE = this.PrepareEmptyItem(_GilCode, _ItemsCode, _ReportDate);

  4.             //DataRow[] drList = dt.Select(string.Format("InnerCode={0} and ItemCode={1} and EndDate='{2}'", _GilCode, _ItemsCode, _ReportDate));
  5.             //if (drList.Length > 0) tmpIE.Result = drList[0]["RetValue"];

  6.             var linqStmt = (from table in dt.AsEnumerable()
  7.                             where table.Field<int?>("InnerCode") == int.Parse(_GilCode)
  8.                             && table.Field<int?>("ItemCode") == int.Parse(_ItemsCode)
  9.                             && table.Field<DateTime?>("EndDate") == CalcPackage.FormatDate(_ReportDate)
  10.                             select table).AsDataView();
  11.             if (linqStmt.Count > 0) tmpIE.Result = linqStmt[0]["RetValue"];
  12.             return tmpIE;
  13.         }
复制代码
TOP