把老大的代码,用 Linq to Dataset 重构了一下。。老大一眼就看出,我以前写 若类型 的代码很少(拼SQL字符串,总是差什么单引号之类的)。。
- private ItemExp FetchOneItem(DataTable dt, string _GilCode, string _ItemsCode, string _ReportDate)
- {
- ItemExp tmpIE = this.PrepareEmptyItem(_GilCode, _ItemsCode, _ReportDate);
- //DataRow[] drList = dt.Select(string.Format("InnerCode={0} and ItemCode={1} and EndDate='{2}'", _GilCode, _ItemsCode, _ReportDate));
- //if (drList.Length > 0) tmpIE.Result = drList[0]["RetValue"];
- var linqStmt = (from table in dt.AsEnumerable()
- where table.Field<int?>("InnerCode") == int.Parse(_GilCode)
- && table.Field<int?>("ItemCode") == int.Parse(_ItemsCode)
- && table.Field<DateTime?>("EndDate") == CalcPackage.FormatDate(_ReportDate)
- select table).AsDataView();
- if (linqStmt.Count > 0) tmpIE.Result = linqStmt[0]["RetValue"];
- return tmpIE;
- }
复制代码