【问题标题】:Calculate total from datagridview into textbox从datagridview计算总数到文本框
【发布时间】:2013-10-10 17:03:26
【问题描述】:

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

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

截图如下:

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

我该怎么做?

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

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

【问题讨论】:

标签: c# winforms ms-access datagridview


【解决方案1】:

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

没有 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));

【讨论】:

    【解决方案2】:

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

    【讨论】:

    • 这将是最好的解决方案,而不是遍历网格视图行。
    【解决方案3】:

    //可以在按钮的点击事件中使用

    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();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多