1

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

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

这是屏幕截图:

在此处输入图像描述

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

我该怎么做?

我已经考虑过了,但是我不知道如何将datagridview中的“总计”列计算(总和)到文本框中。

我很感激你的回答。非常感谢!

4

3 回答 3

2

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

没有 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));
于 2013-09-24T12:37:47.057 回答
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();
于 2013-10-10T09:03:26.380 回答
0

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

于 2013-09-24T12:45:54.457 回答