繁体   English   中英

创建显示摘要销售数据的GridView的最佳方法是什么?

[英]What is the best way to create a GridView showing summary sales data?

我已经在C#和ASP.Net中开发了一个电子商务应用程序。 对于Admin用户的“仪表板”着陆页,我想给他们一个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来处理数据和/或GridView(访问行等)。 看一下我在GitHub上的一个项目,它确实像我在这里提到的那样作为示例。 请注意,这只是我之前用于说明目的的沙箱。

GitHub回购

https://github.com/pauloosthuysen/int

其他有用的信息:

http://www.codeproject.com/Articles/33685/Simple-GridView-Binding-using-LINQ-to-SQL

LastWeek和LastMonth的Sales等不会经常更改。 您可以将其存储在按组织索引的静态词典中,也可以将其汇总在单独的表中以加快访问速度。 这样,您将不需要选择大量的行来一次又一次地获得相同的数字。 除非有特殊要求,否则我会坚持使用字典解决方案,因为它很简单,但结合使用也可能是一个很好的解决方案

没有直接的方法可以做到这一点。 但是,您可以使用数据表(用于绑定到网格)来执行填充操作,而不是将DB累加到每一列的总和。

您需要做的就是使用

Dim iSumSal As Integer

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

同样,您可以为其他列执行。

一旦完成。 然后只需在数据表中添加一个包含所有求和值的新行即可。

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

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

谢谢

拉胡尔

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM