我在 C# 和 ASP.Net 中开发了一个电子商务应用程序。对于管理员用户“仪表板”登录页面,我想给他们一个 GridView,向他们显示几个不同时间范围内的总销售额,这些将是我的列(即最后一天、上周、上个月、最后年,总计)。我想为处于不同状态(即完成、已付款但未发货、进行中)的订单提供这些值。与此类似的东西:
|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 将仅显示用户特定组织的信息,因此它也必须根据该信息进行过滤。
对于如何在不编写大量查询并在每次查看页面时不断点击该查询和数据库的情况下如何做到这一点,我有点不知所措。
有任何想法吗?