2014-02-11 5 views
0

Привет, друзья Мне нужно сгруппировать элементы GridView, как показано ниже. мне нужно суммировать цену в соответствии с его идентификатором вСумма столбца GridView на основе ID

данных в GridView

ID1 ----- ID2 ----- Цена

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

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

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

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

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

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

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

Я хочу сгруппировать эти данные, как показано ниже, и сохранить их в datatable, чтобы я мог передать его в мою базу данных.

ID2 ----- Цена

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

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

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

Как это сделать? Заранее спасибо

+0

Как вы связываете сетку? можете ли вы обновить код? – Damith

+0

DataTable dt = new DataTable(); dt = Получение данных из базы данных; GridView.Datasource = dt; GridView.Bind(); Теперь мои данные находятся в GV, и пользователь может вносить изменения в столбец Price. После этого мне нужно сгруппировать данные на основе второго ID и получить сумму Цена. – Sid

ответ

2

изменить оператор выбора, как показано ниже

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

Нет, я хочу получить результат в datatable, чтобы я мог его сохранить. – Sid

Смежные вопросы