2009-07-01 66 views
11

Tôi cần tạo bảng tổng hợp trong .net. Không thể sử dụng bất kỳ quyền kiểm soát của bên thứ ba nào (trừ khi nó miễn phí). Tôi đã cố gắng tìm tài liệu giải thích cách tạo bảng tổng hợp (thuật toán hoặc bước) nói chung nhưng hầu hết mọi thứ đều liên quan đến excel. Có ai biết cách tạo bảng tổng hợp trong C# ??? Cảm ơnBảng tổng hợp trong C#

+0

bạn đang cố gắng tạo bảng tổng hợp excel hay bạn đang cố gắng hiển thị một số loại dữ liệu được xoay vòng trong GridView? – Jimmy

+0

Tôi đang cố hiển thị dữ liệu trong GridView. – Sheraz

+0

Nguồn dữ liệu là gì? Nếu một số hình thức của SQL, tôi đề nghị bạn làm điều này tại SQL. Bất kỳ cơ hội có thể mà bạn có thể sử dụng LINQ? –

Trả lời

2

MS-Access có lệnh TRANSFORM (có trục xoay), vì vậy bạn có thể sử dụng ADO.NET để truy vấn tệp mdb truy cập ms, sau đó sử dụng truy vấn passthrough để truy cập nguồn dữ liệu có thể ' t pivot (thường là MS-SQL/T-SQL). Tôi đã làm một bằng chứng về khái niệm này và nó đã làm việc và là khoảng 5000 LOC ngắn hơn so với việc thực hiện VBScript đã làm các trục sử dụng mảng.

Các nhận xét không bình thường về MS-Access không áp dụng ở đây vì bạn không thực sự lưu trữ dữ liệu trong MS-Access.

+0

mọi cơ hội để đăng một ví dụ tại đây – Sheraz

+0

Lệnh chuyển đổi: http://msdn.microsoft.com/en-us/library/bb208956.aspx Sử dụng MS-Access qua .NET http://www.csharphelp.com/archives/ archive70.html Và phần còn lại bao gồm các bảng liên kết các khung nhìn ưa thích của bạn hoặc thực hiện truy vấn passthrough/proc được lưu trữ cho dữ liệu nguồn: http://www.aspfree.com/c/a/Microsoft-Access/On-Using-Passthrough-Queries-in -MS-Access / – MatthewMartin

6

Giúp đây http://msdn.microsoft.com/en-us/library/aa172756%28SQL.80%29.aspx

Bảng Thực tế:

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 

mong muốn Output: (Đây Q cho Quý)

Year  Q-1  Q-2  Q-3  Q-4  
1990  1.1  1.2  1.3  1.4 
1991  2.1  2.2  2.3  2.4 
1992  0.0  0.0  0.0  2.4 

Query:

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 

Một Output:

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 
0

CellSetGrid là một mã nguồn mở ASP Net (C#) kiểm soát, trong đó cung cấp bảng pivot như chức năng.

này từng là sẵn để tải về tại trang web này: http://www.SQLServerAnalysisServices.com

Bây giờ trang web không đăng cai kiểm soát này nữa. Vì vậy, tôi đã tải lên nguồn kiểm soát - CellSetGrid here.

  1. Bạn có thể tạo nguồn
  2. Thêm đây làm hộp kiểm Điều khiển trong Visual Studio.
  3. Kéo và kiểm soát Drop mẫu web
  4. Đặt chuỗi kết nối đến khối
  5. này sẽ hiển thị tất cả các kích thước và các nhóm biện pháp, do đó bạn có thể kéo n thả những gì bạn muốn để có được một bảng pivot như chức năng