2014-02-11 48 views
0

你好朋友我需要将GridView的元素分组,如下所示。 我需要根据其ID的总结基于ID的GridView列

在GridView控件

数据

ID1总结的价格----- ----- ID2价格

1 --------- ---- 1 ------------- 100

2 ------------- 1 ------------ -150

3 ------------- ------------- 1 120

4 ---------- --- 2 ------------- 120

5 ------------- 2 ------------- 160

6 ------------ -3 ------------- 100

7 ------------- 3 ------------- 200

我想将这些数据分组,如下所示,并将其保存在数据表中,以便我可以将它传递给我的数据库。

ID2 -----价格

1 ------------ 370

2 ------------ 280

3 ------------ 300

我该怎么做? 在此先感谢

+0

如何绑定gridview?你能更新代码吗? – Damith

+0

DataTable dt = new DataTable(); dt =从数据库获取数据; GridView.Datasource = dt; GridView.Bind(); 现在我的数据是GV,用户可以在价格栏中进行更改。之后,我需要根据第二个ID对数据进行分组,并获得价格总和。 – Sid

回答

2

改变你的SELECT语句如下

SELECT ID2, SUM(Price) FROM TableName GROUP BY ID2 

如果您需要的GridView读取

List<Record> records = new Record<Record>(); 

foreach (GridViewRow row in grid.Rows) 
{ 
    // below code need to be change with your grid controls and id names, and add validations for handle null values etc.. 
    string id2 = ((Label)row.FindControl("ID2Label")).Text; 
    string Price = ((TextBox)row.FindControl("PricetextBox")).Text; 
    records.Add(new Record(){ ID2 = int.Parse(id2), Price = int.Parse(Price)});  
} 

var results = records.GroupBy(r=>r.ID2) 
        .Select(g=> new Record(){ ID2 = g.Key, Price = g.Sum(x=>x.Price)}) 
        .ToList(); 

你可能需要辅助类,就像你可以做以下的

public class Record 
{ 
    public int ID2 { get; set;} 
    public int Price {get; set;} 
} 
+0

你好@Damith,谢谢你的回应。我在GridView中绑定数据。之后,用户可以更改价格。所以我需要根据第二个ID(ID2) – Sid

+0

@Sid在同一个gridview中进行分组/求和? – Damith

+0

不,我想要一个数据表中的结果,以便我可以保存它。 – Sid