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

Итак, я работаю с отчетом RDLC, и мне нужно посчитать, сколько мужчин и женщин в компании.

enter image description here

Вот мой код для получения различной стоимости компаний

            ReportsData m = new ReportsData();
            SqlDataAdapter da = new SqlDataAdapter("SELECT DISTINCT Company FROM TBL_Users WHERE Course = '" + cmbCourse.Text + "' ", con);
            DataTable dt = new DataTable();
            da.Fill(m, m.Tables[0].TableName);
            ReportDataSource rds = new ReportDataSource("CompData", m.Tables[0]);
            this.rpvSL.LocalReport.Refresh();
            this.rpvSL.RefreshReport();

            ReportsData ma = new ReportsData();
            SqlDataAdapter daa = new SqlDataAdapter("SELECT * FROM TBL_Users WHERE Course = '" + cmbCourse.Text + "'  ", con);
            daa.Fill(ma, ma.Tables[0].TableName);
            ReportDataSource rdsa = new ReportDataSource("StudentData", ma.Tables[0]);
            this.rpvSL.LocalReport.DataSources.Clear();
            this.rpvSL.LocalReport.DataSources.Add(rds);
            this.rpvSL.LocalReport.DataSources.Add(rdsa);
            this.rpvSL.LocalReport.Refresh();
            this.rpvSL.RefreshReport();

Как вы видите, я перечисляю отдельный список компаний и хочу подсчитать, сколько мужчин и женщин в конкретной компании.

1 Ответ

0 голосов
/ 10 апреля 2019

Попробуйте следующее:

            var results = dt.AsEnumerable()
                .GroupBy(x => x.Field<string>("Company"))
                .Select(x => new { company = x.Key, employes = x.Count(), male = x.Where(y => y.Field<string>("Gender") == "M").Count(), female = x.Where(y => y.Field<string>("Gender") == "F").Count() })
                .ToList();
...