【发布时间】:2018-03-19 10:37:34
【问题描述】:
Dattemp 表 Dr 和 Cr 中有两列。我需要结果 sum(dr)-sum(cr) 和 datdetail 表的期初余额列中 dattemp 上的 where 子句
for (int i = 0; i < datDetail.Rows.Count; i++)
{
datDetail.Rows[i]["Opening Balance"] = Convert.ToDouble(DatTemp.AsEnumerable().Where(r => r.Field<int>("Identity ID") == Convert.ToInt32(datDetail.Rows[i]["Identity ID"]) && (r.Field<DateTime>("Date") <= Convert.ToDateTime(TxtFromDate.Text.Trim()))).Sum(r => r.Field<decimal>("CR")) - DatTemp.AsEnumerable().Sum(r => r.Field<decimal>("DR"))).ToString("00.00");
datDetail.Rows[i]["Clossing Balance"] = Convert.ToDouble(DatTemp.AsEnumerable().Where(r => r.Field<int>("Identity ID") == Convert.ToInt32(datDetail.Rows[i]["Identity ID"]) && (r.Field<DateTime>("Date") <= Convert.ToDateTime(TxtToDate.Text.Trim()))).Sum(r => r.Field<decimal>("CR")) - DatTemp.AsEnumerable().Sum(r => r.Field<decimal>("DR"))).ToString("00.00");
}
GridDetails.DataSource = datDetail;
GridDetails.DataBind();
【问题讨论】:
-
你遇到了什么问题?
-
如果你已经完成了 SUM 是什么阻止你做减法?
-
这些“单行”可能是迄今为止我见过的最不可读的 LINQ 查询。使用变量并使用列名而不是索引。没有人会理解这一点,包括你自己
-
计算不正确
-
@gurmeetsingh:您应该显示样本、当前结果和您想要的结果。 “不合适”是什么意思?
标签: c# sql-server linq datatable ado.net