计算从datagridview到textbox的总计

时间:2013-09-24 12:34:10

标签: c# winforms ms-access datagridview

我有一个datagridview,用于显示交易记录。 datagridview中的一列是“Total”,即“Quantity”的“SubTotal”次。

我的问题是,如何通过将datagridview中的所有“总计”计算到文本框中来制作“GrandTotal”?

以下是截图:

enter image description here

如果你在上面的datagridview中看到,有一个名为“Total”的列,这个“Total”是从“Quantity”乘以“SubTotal”获得的,我想要的是我想要计算“Total”(总和)列中的“总计”到文本框中。

我该怎么做?

我已经考虑过了,但我不知道如何计算(总和)数据网格视图中的“总计”列到文本框中。

感谢您的回答。 非常感谢你!

3 个答案:

答案 0 :(得分:2)

遍历每一行,找到包含总值的单元格。将此总值转换为double(任何数字数据结构),并通过将每个值与之前的总计数相加来计算总计。

没有Linq

    double result = 0;
    foreach (DataGridViewRow row in DataGridView.Rows)
    {
        result += Convert.ToDouble(row.Cells["Total"].Value);
    }

使用Linq

    double result = DataGridView.Rows.Cast<DataGridViewRow>().Sum(row => Convert.ToDouble(row.Cells["Total"].Value));

答案 1 :(得分:0)

如果您绑定List或DataTable,那么只需使用LINQ的SUM方法

答案 2 :(得分:0)

//您可以在按钮

的点击事件中使用它
str = "YOUR SQL QUERY";
objCom = new SqlCommand(str, objCon);
objDataAdapter = new SqlDataAdapter(objCom);
objDataSet = new DataSet();
objDataAdapter.Fill(objDataSet, "TABLE NAME");
dataGridView2.DataMember = "TABLE NAME";
dataGridView2.DataSource = objDataSet;
dataGridView2[3, dataGridView2.Rows.Count - 1].Value = "Total";
dataGridView2.Rows[dataGridView2.Rows.Count - 1].Cells[3].Style.ForeColor =     Color.White;
dataGridView2.Rows[dataGridView2.Rows.Count - 1].Cells[3].Style.BackColor = Color.Green;
dataGridView2.Rows[dataGridView2.Rows.Count - 1].Cells[4].Style.ForeColor = Color.White;
double sum = 0;
for (int row = 0; row < dataGridView2.Rows.Count; row++)
{
  sum = sum + Convert.ToDouble(dataGridView2.Rows[row].Cells[4].Value);
} 
dataGridView2.Rows[dataGridView2.Rows.Count - 1].Cells[4].Value = sum.ToString();