Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 创建显示汇总销售数据的GridView的最佳方法是什么?_C#_Asp.net_Sql_Gridview - Fatal编程技术网

C# 创建显示汇总销售数据的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

我用C#和ASP.Net开发了一个电子商务应用程序。对于管理员用户的“dashboard”登录页,我想给他们一个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只显示用户特定组织的信息,因此它也必须基于此进行过滤

我有点不知所措,不知道如何做到这一点,而不必编写大量的查询,并在每次查看页面时不断地点击该查询和数据库


有什么想法吗?

我更喜欢使用LINQ处理数据和/或网格视图(访问行等)。看看我在GitHub上的一个项目,它正是我在这里提到的,例如。请注意,这只是一个沙箱,我以前用于演示目的

GitHub回购

其他有用信息:
上周和上月的销售额等变化不大。您可以将其存储在按组织编制索引的静态字典中,或将其汇总到单独的表中,以加快访问速度。这样,您就不需要选择相同数量的行来反复获得相同的数字。除非有特殊要求,否则我会坚持使用字典解决方案,因为它很简单,但组合也可能是一个好的解决方案

没有直接的方法。 但是,您可以使用datatable(用于绑定到网格)执行这些操作,而不是将DB计算为每列的总和

你所需要做的就是使用它

Dim iSumSal As Integer
iSumSal=StudentTable.Compute(“SUM(sal)”,“”)

同样,您也可以对其他列执行

一旦这样做了。然后,只需向数据表中添加一个新行,其中包含所有求和值

然后您可以将其绑定到网格

可选-您可以在新行的第一列中放置一些文本值,作为“总计:”

谢谢

拉胡尔