2015-10-13 3 views
0

у меня есть две таблицы сосать как один ниже я хочу знать, как суммировать столбец «калории» на основе имени из таблицы 1, а затем вставить значение в таблице 2LINQ сумма одного столбца и вставить в другую таблицу C#

table1(PK->ID(int),Name(nvarchar),amount(int),calorie(int)) 
table2(pk->ID(int),name(nvarchar),totalcalorie(int)) 

+-------+--------+----------+--------------+ 
| int | name | amount | calorie | 
+-------+--------+----------+--------------+ 
|  1 | a |  10 |  20  | 
|  2 | b |  5 |  20  | 
|  2 | b |  10 |  10  | 
|  1 | a |  10 |  10  | 
|  2 | b |  15 |  35  | 
|  3 | c |  20 |  15  | 
+-------+--------+----------+--------------+ 

что-то, как это мой первый стол теперь представьте себе же своего рода стол для table2 только на этот раз что-то вроде:

1-------a--------30 
2-------b--------65 
3-------c--------15 

это вообще возможно? что я написал до сих пор и не работает:

DataClasses1DataContext db = new DataClasses1DataContext(); 
     var q = from row in db.table1 
       group row by new { row.name } 
        into grp 
        select new 
        { 
         grp.Key.name, 
         sum = grp.Sum(row => row.calorie) 
        }; 
     db.SubmitChanges(); 
+0

Вам просто нужна сумма группы калорий по имени пользователя? –

+0

извините im kinda new для сайта.ok, поэтому использование сетки не решает проблему? – user5433057

ответ

0

Теперь вы просто выбираете данные. Вам нужен блок для вставки как следующее:

var q = (from row in db.table1 
     group row by new { row.id, row.name } into grp 
     select new 
     { 
      grp.Key.id, 
      grp.Key.name, 
      sum = grp.Sum(s => s.calorie) 
     }).ToList(); 

foreach(var item in q) 
{ 
    var e = new db.table2Entity 
    { 
     id = item.id, 
     name = item.name, 
     totalcalorie = item.sum 
    }; 
    db.Table2.AddObject(e);  
} 

db.SaveChanges(); 
0

Я думаю, что вы не видите результат на вас Databse после db.SubmitChanges() Райта? Linq-запрос должен работать нормально, но Submit не видит изменений, потому что в таблице 2 нет изменений. Вы выбираете только данные и группируете их из таблицы1. Пожалуйста, отлаживайте и посмотрите, что находится в переменной q.

+0

Как вы думаете, я могу сделать что-то вроде привязки первой таблицы к gridview и сумме столбца, который я хочу использовать, используя «for()», а затем передать эту сумму в другую таблицу? – user5433057

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