C# 创建显示汇总销售数据的GridView的最佳方法是什么?
我用C#和ASP.Net开发了一个电子商务应用程序。对于管理员用户的“dashboard”登录页,我想给他们一个GridView,显示他们在两个不同时间范围内的总销售金额,这些将是我的专栏(即上一天、上一周、上一个月、上一年、总金额)。我想为处于不同状态(即已完成、已付款但未发货、正在进行)的订单提供这些值。类似于此:C# 创建显示汇总销售数据的GridView的最佳方法是什么?,c#,asp.net,sql,gridview,C#,Asp.net,Sql,Gridview,我用C#和ASP.Net开发了一个电子商务应用程序。对于管理员用户的“dashboard”登录页,我想给他们一个GridView,显示他们在两个不同时间范围内的总销售金额,这些将是我的专栏(即上一天、上一周、上一个月、上一年、总金额)。我想为处于不同状态(即已完成、已付款但未发货、正在进行)的订单提供这些值。类似于此: |OrderStatus|Today|LastWeek|LastMonth| |Processed |$10 |$100 |$34000 | |PaidNotShi
|OrderStatus|Today|LastWeek|LastMonth|
|Processed |$10 |$100 |$34000 |
|PaidNotShip|$4 |$12 |$45 |
我的问题:做这件事最好/最有效的方法是什么?我知道我可以编写单独的SQL语句并将它们合并在一起,然后将gridview绑定到sqldatasource:
(select amountForYesterday, amountForLastWeek from sales where orderStatus = processed)
UNION
(select amountForYesterday, amountForLastWeek from sales where orderStatus = paidnotshipped)
但这似乎很痛苦,效率也很低,因为我实际上是在为每个值编写一个单独的查询
我还可以在加载后的.cs页面中执行此操作,并以编程方式逐行填充网格视图
此GridView只显示用户特定组织的信息,因此它也必须基于此进行过滤
我有点不知所措,不知道如何做到这一点,而不必编写大量的查询,并在每次查看页面时不断地点击该查询和数据库
有什么想法吗?我更喜欢使用LINQ处理数据和/或网格视图(访问行等)。看看我在GitHub上的一个项目,它正是我在这里提到的,例如。请注意,这只是一个沙箱,我以前用于演示目的 GitHub回购 其他有用信息:
上周和上月的销售额等变化不大。您可以将其存储在按组织编制索引的静态字典中,或将其汇总到单独的表中,以加快访问速度。这样,您就不需要选择相同数量的行来反复获得相同的数字。除非有特殊要求,否则我会坚持使用字典解决方案,因为它很简单,但组合也可能是一个好的解决方案没有直接的方法。 但是,您可以使用datatable(用于绑定到网格)执行这些操作,而不是将DB计算为每列的总和 你所需要做的就是使用它
Dim iSumSal As Integer
iSumSal=StudentTable.Compute(“SUM(sal)”,“”)
同样,您也可以对其他列执行
一旦这样做了。然后,只需向数据表中添加一个新行,其中包含所有求和值
然后您可以将其绑定到网格
可选-您可以在新行的第一列中放置一些文本值,作为“总计:”
谢谢
拉胡尔