【代码笔记】c# Linq操作DataTable

首先:添加引用

项目添加引用 System.Data.DataSetExtensions

 注意下面代码 AsEnumerable()方法的使用

 

数据库访问代码

        public DataTable AllianceOrderDataStats(string sqlWhere)
        {  

            StringBuilder commandText = new StringBuilder(); 

            commandText.Append($@"
            select 
            groupkey='groupkey',
            orders.oid,
            orders.osn,
            orders.uid,
            orders.orderstate,
            orders.productamount,
            orders.orderamount,
            orders.addtime,
            orders.storeid,
            orders.storename 
            from (select storeid from bma_storein where storeid>0 {sqlWhere}) as storeIdTable
            inner join bma_orders as orders on storeIdTable.storeid=orders.storeid
            ");

            return RDBSHelper.ExecuteDataset(CommandType.Text, commandText.ToString()).Tables[0];
        }

业务代码

第一步:获取数据

 EnumerableRowCollection<DataRow> orderDataTable = Orders.AllianceOrderDataStats(sqlWhere.ToString()).AsEnumerable();

//订单总和
resultModel.orderCount = orderDataTable.Count();

第二步:根据【groupkey】分组后统计【orderamount】的合

var orderMoneyCount = from orderTable in orderDataTable
                                              where orderTable["orderstate"].ToString()=="100"
                                              group orderTable by orderTable["groupkey"] into groupkey
                                              select new { MoneyCount = groupkey.Sum(dr=> Convert.ToDecimal(dr["orderamount"])) };


//获取orderamount合
 resultModel.orderMoneyCount = orderMoneyCount.SingleOrDefault().MoneyCount;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

橙-极纪元JJYCheng

客官,1分钱也是爱,给个赏钱吧

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值