C# c语言中的透视表#

C# c语言中的透视表#,c#,ado.net,C#,Ado.net,我需要在.net中创建一个透视表。不能使用任何第三方控件(除非是免费的)。我试图找到说明如何创建数据透视表(算法或步骤)的文档,但几乎所有内容都与excel相关。 有人知道如何在c#中创建透视表吗??? 感谢MS Access具有TRANSFORM命令(该命令执行透视),因此您可以使用ADO.NET查询MS Access mdb文件,然后在那里使用直通查询来访问无法透视的数据源(通常为MS-SQL/t-SQL)。我对此进行了概念验证,它有效,比使用数组进行透视的VBScript实现短约5000

我需要在.net中创建一个透视表。不能使用任何第三方控件(除非是免费的)。我试图找到说明如何创建数据透视表(算法或步骤)的文档,但几乎所有内容都与excel相关。 有人知道如何在c#中创建透视表吗???
感谢MS Access具有TRANSFORM命令(该命令执行透视),因此您可以使用ADO.NET查询MS Access mdb文件,然后在那里使用直通查询来访问无法透视的数据源(通常为MS-SQL/t-SQL)。我对此进行了概念验证,它有效,比使用数组进行透视的VBScript实现短约5000 LOC

通常关于MS Access的贬损评论在这里不适用,因为您实际上并没有在MS Access中存储数据。

这里有帮助

实际表格:

Year   Quarter  Amount    
1990      1      1.1  
1990      2      1.2  
1990      3      1.3  
1990      4      1.4  
1991      1      2.1  
1991      2      2.2  
1991      3      2.3  
1991      4      2.4  
1992      4      2.4  
期望输出:(此处为季度Q)

查询:

Use Northwind    
GO

CREATE TABLE Pivot    
( Year      SMALLINT,    
  Quarter   TINYINT,    
  Amount    DECIMAL(2,1) )    
GO

INSERT INTO Pivot VALUES (1990, 1, 1.1)    
INSERT INTO Pivot VALUES (1990, 2, 1.2)    
INSERT INTO Pivot VALUES (1990, 3, 1.3)    
INSERT INTO Pivot VALUES (1990, 4, 1.4)    
INSERT INTO Pivot VALUES (1991, 1, 2.1)    
INSERT INTO Pivot VALUES (1991, 2, 2.2)    
INSERT INTO Pivot VALUES (1991, 3, 2.3)    
INSERT INTO Pivot VALUES (1991, 4, 2.4)    
INSERT INTO Pivot VALUES (1992, 4, 2.4)   
GO

SELECT * FROM Pivot    
GO

SELECT Year,    
    SUM(CASE Quarter WHEN 1 THEN Amount ELSE 0 END) AS Q1,    
    SUM(CASE Quarter WHEN 2 THEN Amount ELSE 0 END) AS Q2,    
    SUM(CASE Quarter WHEN 3 THEN Amount ELSE 0 END) AS Q3,    
    SUM(CASE Quarter WHEN 4 THEN Amount ELSE 0 END) AS Q4    
FROM Northwind.dbo.Pivot    
GROUP BY Year    
GO
另一个输出:

SELECT P1.*, (P1.Q1 + P1.Q2 + P1.Q3 + P1.Q4) AS YearTotal    
FROM (SELECT Year,
             SUM(CASE P.Quarter WHEN 1 THEN P.Amount ELSE 0 END) AS Q1,
             SUM(CASE P.Quarter WHEN 2 THEN P.Amount ELSE 0 END) AS Q2,
             SUM(CASE P.Quarter WHEN 3 THEN P.Amount ELSE 0 END) AS Q3,
             SUM(CASE P.Quarter WHEN 4 THEN P.Amount ELSE 0 END) AS Q4
     FROM Pivot AS P
     GROUP BY P.Year) AS P1
GO

CellSetGrid是一个开源的ASP.Net(c#)控件,它提供了类似透视表的功能

此文件以前可在此网站下载:

现在该站点不再承载此控件。所以我上传了控制的源代码——CellSetGrid

  • 您可以构建源代码
  • 将此作为控件添加到Visual Studio工具箱中
  • 将控件拖放到web窗体
  • 将连接字符串设置为多维数据集
  • 这将显示所有维度和度量值组,以便您可以拖放想要获得类似透视表功能的内容

  • 您是要创建excel数据透视表还是要在GridView中显示某种数据透视?我要在GridView中显示数据。数据源是什么?如果是某种形式的SQL,我建议您在SQL中这样做。你有没有可能用LINQ?啊,我希望我能用LINQ。我们仍然使用.NET2.0。我在SQL方面没有控制权,所以基本上只能通过使用数据表来完成。这方面有什么进展吗?我已经用Java从头开始实现了pivot表。如果您仍在查找信息,我可以带您浏览详细信息。是否有机会发布一个示例hereTransform命令:通过.NET使用MS Access,其余包括链接表您最喜欢的视图或对源数据执行传递查询/存储过程:
    SELECT P1.*, (P1.Q1 + P1.Q2 + P1.Q3 + P1.Q4) AS YearTotal    
    FROM (SELECT Year,
                 SUM(CASE P.Quarter WHEN 1 THEN P.Amount ELSE 0 END) AS Q1,
                 SUM(CASE P.Quarter WHEN 2 THEN P.Amount ELSE 0 END) AS Q2,
                 SUM(CASE P.Quarter WHEN 3 THEN P.Amount ELSE 0 END) AS Q3,
                 SUM(CASE P.Quarter WHEN 4 THEN P.Amount ELSE 0 END) AS Q4
         FROM Pivot AS P
         GROUP BY P.Year) AS P1
    GO