Как перерисовывать DataGridView после запроса LINQ

277
04 мая 2017, 11:21

Есть DGV,в которую считывается таблица из бд(с помощью класса linq2sql). Визуально это выглядит вот так:

Пользователь может выбрать определенные поля и вывести по ним информацию. Сейчас это выглядит вот так(выбраны поля date и city):

Вот код ,где осуществляется выборка:

 private void button1_Click_1(object sender, EventArgs e)
    {
        var  regi = (from r in db.Registrs.ToList() 
                   group r by new { Date = checkBox1.Checked ? (DateTime?)r.date : (DateTime?)null,
                       Company = checkBox2.Checked ? r.company : null,
                       City = checkBox3.Checked ? r.city : null,
                       Country = checkBox4.Checked ? r.country : null,
                       Manager = checkBox5.Checked ? r.manager: null,
                   } into g
                   select new
                  {
                       Date = checkBox1.Checked ? (DateTime?) g.Key.Date  : (DateTime?)null,
                       Company = checkBox2.Checked ? g.Key.Company : null,
                       City = checkBox3.Checked ? g.Key.City : null,                                         
                        Country = checkBox4.Checked ? g.Key.Country : null,
                        Manager = checkBox5.Checked ? g.Key.Manager : null,
                        Quantity = checkBox1.Checked || checkBox2.Checked || checkBox3.Checked || checkBox4.Checked || checkBox5.Checked ? g.Sum(s => s.quantity) : null,
                        Amount = checkBox1.Checked || checkBox2.Checked || checkBox3.Checked || checkBox4.Checked || checkBox5.Checked ? g.Sum(s => s.amount) : null,                           
                   }).Distinct();         
        registrDataGridView.DataSource = regi.ToList();
    }

Мне нужно выводить только те колонки,которые выбраны. Чтобы не было пустых колонок.(на втором скрине видно,что пустые колонки не убираются). Как это можно сделать?

Answer 1

Как добавить в выборку не подскажу, а вот скрыть колонку в DGV просто:

dgv.Columns["hideme"].Visible = false;
READ ALSO
Проблема с кодировкой UTF-8 через WebSocket

Проблема с кодировкой UTF-8 через WebSocket

Создал ASPNET Core чат на WebSocket'ах

377
Не открывается новое окно

Не открывается новое окно

Если значения параметров нулевые - запускается окно настроек, где должен их ввести (сохранения настроек проихводится в SettingsViewModel)Проблема:...

227
c# Подгрузка dll

c# Подгрузка dll

Добрый день, возникла такая проблема: Я использую dll в проекте C#Но когда я пытаюсь запустить exe, он не запускается ( участок кода, который использует...

222
Библиотека для музыкального плеера [требует правки]

Библиотека для музыкального плеера [требует правки]

Подскажите хорошую библиотеку для создания музыкального плеера и как установить эту библиотеку

205