Member 13196273 Ответов: 1

Выберите столбец из объекта DataTable с группы, и суммы, используя LINQ


я более свеж в linq
datatable содержит столбцы:
Idendity Name,
customer Name,
customer Contact Name,
Total Book Quantity,
Return Book Quality,
Quatan Book Qty,

группы содержат три столбца Idendity имя, имя клиента, контакт с клиентом имя нового столбца в SELECT stamement общая балансовая содержать ( общая балансовая Квант+Quatan забронировать кол-вернуть качество книги) я хочу всех столбцов в сетке, но сетка содержат Idendity имя, имя клиента, заказчика, имя контактного лица и общая балансовая столбцы missinf столбцы ReturnBookQuality,QuatanBookQty пожалуйста, помогите мне.

Что я уже пробовал:

cmd = new SqlCommand(" ", con);

        da = new SqlDataAdapter(cmd);
        DataTable t_eight = new DataTable("t_eight");
        da.Fill(t_eight);//datatable "t_eight" fill

//linq query
    var query3 = (from a in t_eight.AsEnumerable()//t_eigth Datatable

                          group a by new
                          {//Group by with condition
    IdendityName = a.Field<string>("Idendity Name"),
    ContactPersonName = a.Field<string>("Contact Person Name"),
    CustomerName = a.Field<string>("Customer Name")
                          }
                              into g
                              select new
                              {
                                     IdendinyName = g.Key.IdendityName,
                                  ContactPersonName = g.Key.ContactPersonName,
                                  CurtomerName = g.Key.CustomerName,

    TotalBook = g.Sum(x => x.Field<int32>("Total Book Quantity")
                                      + x.Field<int32>("Quatan Book Qty") - x.Field<int32>("Return Book Quality"))
                              }
                  );

GridView1.DataSource = query3;
        GridView1.DataBind();

Richard Deeming

Итак, вы привязали свою сетку к запросу, который возвращает четыре столбца, и удивляетесь, что она отображает только четыре столбца, возвращенные вашим запросом?

Если вы хотите отобразить все столбцы из DataTable, тогда просто привяжите свою сетку к этому DataTable.

Maciej Los

Не ясно! Пожалуйста, будьте более конкретны и предоставьте более подробную информацию. Покажите нам входные данные и ожидаемый результат. Это должно помочь нам понять, чего вы хотите достичь.

1 Ответов

Рейтинг:
1

Maciej Los

Если я вас хорошо понимаю...

На первый взгляд, вы должны группировать данные только по Idendity Name и внесите некоторые изменения в свой код запроса:

var query3 = (from a in t_eight.AsEnumerable()
                      group a by new
                      {
IdendityName = a.Field<string>("Idendity Name"),
ContactPersonName = a.Field<string>("Contact Person Name"),
CustomerName = a.Field<string>("Customer Name")
                      }
                          into g
                          select new
                          {
                              IdendinyName = g.Key.IdendityName,
                              ContactPersonName = g.Key.ContactPersonName,
                              CurtomerName = g.Key.CustomerName,
                              TotalBook = g.Sum(x => x.Field<int32>("Total Book Quantity"))
                                  + g.Sum(y => y.Field<int32>("Quatan Book Qty"))
                                  - g.Sum(z => z.Field<int32>("Return Book Quality"))
                          }
              ).ToList();


Дай мне знать, если это поможет...


Member 13196273

не работать

Maciej Los

"Не работать"- совсем не информативно!