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

2021/11/26 20:10:21

本文主要是介绍【代码笔记】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;



这篇关于【代码笔记】c# Linq操作DataTable的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程