问题描述
DataTable先填充值到DataGridView中,条件是根据DataTable中的日期筛选出某一天的全部数据相加,算出平均值,日期不需要手动输入,日期在DataTable中取值意思就是得到DataGridView中某天数据的平均值,不需要重复查询数据库,数据库有很多日期,一个日期有很多数据
解决方案
解决方案二:
linq吧,你可以百度一下,我也不是很清楚
解决方案三:
varsum=dt.Rows.Cast<DataRows>().Where(dr=>dr["日期"].ToString()=="2015/05/16").Average(row=>decimal.Parse(row["金额"].ToString()));
解决方案四:
如果数据是行的就取行到数组去操作如果数据是列的就取列到数组去操作
解决方案五:
不行哦,我用的是WindForm窗体写的
解决方案六:
引用2楼xuanbg的回复:
varsum=dt.Rows.Cast<DataRows>().Where(dr=>dr["日期"].ToString()=="2015/05/16").Average(row=>decimal.Parse(row["金额"].ToString()));
有没有简单的方法,这个不能理解
解决方案七:
这个就是最简单的写法了。。。。。。你只需要替换下列名,把日期替换成你的输入变量,sum就是结果了。
解决方案八:
dt:你的DataTable“日期”:DataTable里面的日期列的名称,如果存的是不是日期而是时间的话,自己转换成日期“2015/05/16”:你需要输入的日期“金额”:你要统计平均值的列的名称
解决方案九:
引用7楼xuanbg的回复:
dt:你的DataTable“日期”:DataTable里面的日期列的名称,如果存的是不是日期而是时间的话,自己转换成日期“2015/05/16”:你需要输入的日期“金额”:你要统计平均值的列的名称
不是linq,是C#语言,开发工具是2005版本的,.net是版本是2.0的
解决方案十:
引用8楼u010737066的回复:
Quote: 引用7楼xuanbg的回复:
dt:你的DataTable“日期”:DataTable里面的日期列的名称,如果存的是不是日期而是时间的话,自己转换成日期“2015/05/16”:你需要输入的日期“金额”:你要统计平均值的列的名称不是linq,是C#语言,开发工具是2005版本的,.net是版本是2.0的
varav=newList<decimal>();foreach(DataRowdrin_Cashiers.Rows){if(dr["日期"].ToString()!="")continue;av.Add(decimal.Parse(dr["金额"].ToString()));}varsum=av.Average();
解决方案十一:
varav=newList<decimal>();foreach(DataRowdrin_Cashiers.Rows){if(dr["日期"].ToString()!="2015/05/16")continue;av.Add(decimal.Parse(dr["金额"].ToString()));}varsum=av.Average();
解决方案十二:
为什么不用个数据库的查询做呢?selectavg(数据)from表Awhere日期like'你要查的日期'