Как подсчитать непустые строки каждого столбца в одном представлении данных и показать количество строк во втором представлении данных? - PullRequest
0 голосов
/ 27 мая 2019

У меня есть 2 просмотра данных:

1 - Показывает данные из базы данных.

2 - должен отображать количество непустых строк каждого столбца в первом представлении данных.

Я попробовал этот код, но он считает каждую строку:

     var count = dataGridView1.Rows.Cast<DataGridViewRow>().Where(row => !(row.Cells[0].Value == null || row.Cells[0].Value == DBNull.Value)).Count();

Второе представление данных должно показывать разные непустые строки.

Пожалуйста, помогите решить эту проблему.

Спасибо за помощь.

1 Ответ

0 голосов
/ 27 мая 2019

Попробуйте выполнить следующее:

            var count = Enumerable.Range(0, dataGridView1.Columns.Count) 
                .Select(x => new { column = x, count = dataGridView1.Rows.Cast<DataGridViewRow>().Where(row => !(row.Cells[x].Value == null || row.Cells[x].Value == DBNull.Value)).Count() })
                .ToList();

Использование таблицы данных

            var count1 = Enumerable.Range(0, dt.Columns.Count)
                .Select(x => new { column = x, count = dt.AsEnumerable().Where(row => row[x] != DBNull.Value).Count() })
                .ToList();

Создание таблицы данных с результатами

            var count1 = Enumerable.Range(0, dt.Columns.Count)
                .Select(x => new { column = x, count = dt.AsEnumerable().Where(row => row[x] != DBNull.Value).Count() })
                .ToList();

            DataTable dt2 = new DataTable();
            dt2.Columns.Add("Column Name", typeof(string));
            dt2.Columns.Add("Count", typeof(int));

            foreach (var count in count1)
            {
                dt2.Rows.Add(new object[] { dt.Columns[count.column].ColumnName, count.count }); 
            }
...