首页 > 学院 > 开发设计 > 正文

C# Linq To DataTable 分组统计 DEMO

2019-11-17 02:46:04
字体:
来源:转载
供稿:网友

C# Linq To DataTable 分组统计 DEMO

DataTabledt=SQLLayer.Get工作量统计(beginDate,endDate);varquerySum=fromtindt.AsEnumerable()grouptbyt.Field<string>("库房")intogselectnew{_库房=g.Key,_品次_入库=g.Sum(t=>t.Field<decimal>("品次_入库")),_品种_入库=g.Sum(t=>t.Field<decimal>("品种_入库")),_金额_入库=g.Sum(t=>t.Field<decimal>("金额_入库")),_品次_出库=g.Sum(t=>t.Field<decimal>("品次_出库")),_品种_出库=g.Sum(t=>t.Field<decimal>("品种_出库")),_金额_出库=g.Sum(t=>t.Field<decimal>("金额_出库")),_品种_现存=g.Sum(t=>t.Field<decimal>("品种_现存")),_金额_现存=g.Sum(t=>t.Field<decimal>("金额_现存"))};DataTablenewDt=newDataTable();DataRownewRow=null;newDt.Columns.Add("库房",typeof(string));newDt.Columns.Add("品次_入库",typeof(decimal));newDt.Columns.Add("品种_入库",typeof(decimal));newDt.Columns.Add("金额_入库",typeof(decimal));newDt.Columns.Add("品次_出库",typeof(decimal));newDt.Columns.Add("品种_出库",typeof(decimal));newDt.Columns.Add("金额_出库",typeof(decimal));newDt.Columns.Add("品种_现存",typeof(decimal));newDt.Columns.Add("金额_现存",typeof(decimal));foreach(varqueryinquerySum){newRow=newDt.NewRow();newRow["库房"]=query._库房;newRow["品次_入库"]=query._品次_入库;newRow["品种_入库"]=query._品种_入库;newRow["金额_入库"]=query._金额_入库;newRow["品次_出库"]=query._品次_出库;newRow["品种_出库"]=query._品种_出库;newRow["金额_出库"]=query._金额_出库;newRow["品种_现存"]=query._品种_现存;newRow["金额_现存"]=query._金额_现存;newDt.Rows.Add(newRow);}复制代码

复制代码PRivatevoidbtnLinqTest__Click(objectsender,EventArgse){DataTablevtblSeqBase=this.DM.bdsSingle._mpDataTable;//1.GroupBy统计varquery=fromqinvtblSeqBase.AsEnumerable()groupqbyq.Field<string>("MachineType")intorselectnew{_qMachType=r.Key,_qCount=r.Count()};using(DataTablevtblCount=newDataTable()){DataRowvNewRow=null;vtblCount.Columns.Add("MachType",typeof(string));vtblCount.Columns.Add("Count",typeof(int));foreach(varvqinquery){vNewRow=vtblCount.NewRow();vNewRow["MachType"]=vq._qMachType;vNewRow["Count"]=vq._qCount;vtblCount.Rows.Add(vNewRow);}//vtblCount.mmViewForRD();}//2.Distinct用法XXXTestOk2011-07-18vard=(fromDataRowvRowinvtblSeqBase.Rowsselectnew{_MachType=vRow["MachineType"]}).Distinct();using(DataTablevtblDistinct=newDataTable()){DataRowvNewRow=null;vtblDistinct.Columns.Add("MachType",typeof(string));vtblDistinct.Columns.Add("Count",typeof(int));foreach(varqind){vNewRow=vtblDistinct.NewRow();vNewRow["MachType"]=q._MachType;vtblDistinct.Rows.Add(vNewRow);}//vtblDistinct.mmViewForRD();}//DataTableExtensions.CopyToDataTable//3.List<int>vListNum=newList<int>{21,46,46,55,17,21,55,55};IEnumerable<int>vDistNum=vListNum.Distinct();foreach(intninvDistNum){//MessageBox.Show("不重复的数值="+n.ToString());}//4.GroupBy一个字段varquerySum=fromqinvtblSeqBase.AsEnumerable()groupqbyq.Field<string>("MachineType")intogselectnew{_qMachType=g.Key,_qSamTotal=g.Sum(q=>q.Field<decimal>("SamValue"))};using(DataTablevtblSAMTotal=newDataTable()){DataRowvNewRow=null;vtblSAMTotal.Columns.Add("MachType",typeof(string));vtblSAMTotal.Columns.Add("SAMTotal",typeof(decimal));foreach(varvqinquerySum){vNewRow=vtblSAMTotal.NewRow();vNewRow["MachType"]=vq._qMachType;vNewRow["SAMTotal"]=vq._qSamTotal;vtblSAMTotal.Rows.Add(vNewRow);}//vtblSAMTotal.mmViewForRD();}//5.GroupBy多个字段GBN=GroupByNFieldvarqueryGBN=fromqinvtblSeqBase.AsEnumerable()groupqbynew{机器代码=q.Field<string>("MachineType"),工序代码=q.Field<string>("SeqCode")}intogselectnew{_qMachType=g.Key,_qSamTotal=g.Sum(q=>q.Field<decimal>("SamValue")),_qSamAvg=g.Average(q=>q.Field<decimal>("SamValue"))};using(DataTablevtblSAMTotal=newDataTable()){DataRowvNewRow=null;vtblSAMTotal.Columns.Add("MachType",typeof(string));vtblSAMTotal.Columns.Add("SeqCode",typeof(string));vtblSAMTotal.Columns.Add("SAMTotal",typeof(decimal));vtblSAMTotal.Columns.Add("SAMAvg",typeof(decimal));foreach(varvqinqueryGBN){vNewRow=vtblSAMTotal.NewRow();vNewRow["MachType"]=vq._qMachType;vNewRow["SeqCode"]=vq._qMachType;vNewRow["SAMTotal"]=vq._qSamTotal;vNewRow["SAMAvg"]=vq._qSamAvg;vtblSAMTotal.Rows.Add(vNewRow);}vtblSAMTotal.mmViewForRD();}}复制代码
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表