C# 在datagridview中计算相似单元格值的和
在这里,在这个C# 在datagridview中计算相似单元格值的和,c#,mysql,datagridview,C#,Mysql,Datagridview,在这里,在这个datagridview中,我想计算类似部门的总和 也就是说,如果部门在第一行是架构,并且其TMH单元格在datagridview下面的值是36 然后在第二排我的部门是设计部,它的TMH单元值是45 我再次选择了第三排的建筑部门,它的TMH值现在是45 这是我的密码 private void ProjectActivitiesGrid_CellEndEdit(object sender, DataGridViewCellEventArgs e) {
datagridview
中,我想计算类似部门的总和
也就是说,如果部门在第一行是架构,并且其TMH
单元格在datagridview
下面的值是36
然后在第二排我的部门是设计部,它的TMH单元值是45
我再次选择了第三排的建筑部门,它的TMH值现在是45
这是我的密码
private void ProjectActivitiesGrid_CellEndEdit(object sender, DataGridViewCellEventArgs e)
{
Decimal sum = 0;
#region THM CALCULATION.
int column = ProjectActivitiesGrid.CurrentCell.ColumnIndex;
string headerText = ProjectActivitiesGrid.Columns[column].HeaderText;
DataGridViewRow d = this.ProjectActivitiesGrid.Rows[e.RowIndex];
String department = d.Cells[0].Value.ToString();
String chk = m_Project.projdepthrs.Where(c => c.DEPARTMENT == department).Select(c => c.DEPARTMENT).FirstOrDefault();
if (chk == null)
{
MessageBox.Show("Please fill up department alloted hrs first");
d.Cells[1].ReadOnly = true;
d.Cells[2].ReadOnly = true;
d.Cells[3].ReadOnly = true;
d.Cells[4].ReadOnly = true;
d.Cells[5].ReadOnly = true;
d.Cells[6].ReadOnly = true;
d.Cells[7].ReadOnly = true;
}
else
{
d.Cells[1].ReadOnly = false;
d.Cells[2].ReadOnly = false;
d.Cells[3].ReadOnly = false;
d.Cells[4].ReadOnly = false;
d.Cells[5].ReadOnly = false;
d.Cells[6].ReadOnly = false;
d.Cells[7].ReadOnly = false;
String tmh = m_Project.projdepthrs.Where(c => c.DEPARTMENT == department).Select(c => c.TMH).First();
LBLAllotedhrs.Text = tmh;
LBLLefthrs.Text = tmh;
}
foreach (DataGridViewRow rw in ProjectActivitiesGrid.Rows)
{
if (department == d.Cells[0].Value.ToString())
sum = sum + Convert.ToInt32(d.Cells[5].Value);
else
sum = 0;
}
LBLLefthrs.Text = (Convert.ToInt32(LBLLefthrs.Text) - Convert.ToInt32(sum)).ToString();
#endregion
}
那么,如果我的第1行和第3行有类似的部门下拉列表,我如何才能得到我的总和为36+45
我需要这种情况的逻辑。因此,如果我理解正确,您需要如下内容:
var result = m_Project.projdepthrs.Where(md=> md.DEPARTMENT == department)
.Sum(ms=> Convert.ToInt32(ms.TMH));
如果我有误解,请发表评论。因此,如果我理解正确,您需要类似以下内容:
var result = m_Project.projdepthrs.Where(md=> md.DEPARTMENT == department)
.Sum(ms=> Convert.ToInt32(ms.TMH));
如果我有误解,请发表评论。请添加您已经尝试过的东西的代码。一个带有值的示例设置也会很有帮助;您在哪里定义
m_Project
?m_Project是我的实体上下文…我从中访问表对象。因此,如果我要重申您的问题,您想在您的上下文中查询projdepthrs
表中所有与部门相等的部门,并对TMH
列中的值求和?请添加您已经尝试过的代码。一个带有值的示例设置也会很有帮助;您在哪里定义m_Project
?m_Project是我的实体上下文…我从中访问表对象。因此,如果我要重申您的问题,您希望在您的上下文中查询与部门相等的所有部门的projdepthrs
表,并将TMH
列中的值相加?