【问题标题】:Display sum the values of the cells of last column in datagridview在datagridview中显示最后一列单元格的值
【发布时间】:2012-11-13 15:14:27
【问题描述】:

如何在datagridview中显示最后一列单元格的值的总和。 我有一个包含 2 列名称和值的网格。 我希望网格有一个文本框,其中最后一行的值总和。

【问题讨论】:

    标签: c# datagridview windows-applications


    【解决方案1】:
      var value = dataGridView1.Rows.Cast<DataGridViewRow>().Sum(x =>
                                                                    {
                                                                      double val = 0;
                                                                      if (double.TryParse(x.Cells["Column"], out val))
                                                                        return val;
                                                                      else
                                                                        return 0;
                                                                    });
    

    这应该使用 LINQ 为您完成。

    【讨论】:

    • 我得到了 Luke 的总和值,但无法在 datagrid 的页脚添加一行并在那里显示总和....
    • 好吧,您的问题并没有明确说明,因此您应该问另一个问题,即如何在数据网格的页脚中获取值。我的回答回答了您在 datagridview 中获取列总和的问题。
    • "我希望网格有一个文本框,其中最后一行的值总和。"
    • 我在我的问题中提到过。
    【解决方案2】:

    假设您的最后一列中有整数值,您可以使用如下内容: 编辑:您应该检查当前行是否为新行(用于插入的行)

            int sum = 0;
            for (int i = 0; i < dataGridView1.Rows.Count; i++)
            {
                int num = 0;
                if(!dataGridView1.Rows[i].IsNewRow)
                    if (int.TryParse(dataGridView1.Rows[i].Cells[dataGridView1.Columns.Count - 1].Value.ToString(), out num))
                        sum += num;
            }
            dataGridView1.Rows.Add(new object[] { "Total", sum.ToString()});
    

    如果您有其他类型的数字,您应该解析该数字。 *编辑:*如 cmets 所述,您有一个 DataGridView 数据绑定控件。在这种情况下,您应该将数据添加到绑定源。如果是DataTable,您应该添加到它而不是添加到DataGridView

    DataTable dt = (DataTable)dataGridView1.DataSource;
    dt.Rows.Add(new object[] { "Total" , sum.ToString() });
    

    【讨论】:

    • 我几乎像这样编码,添加了 'dataGridView1.Rows.Add(new object[] { "Total", sum.ToString()});'给它。我得到一个错误,例如“当控件绑定数据时,无法以编程方式将行添加到 DataGridView 的行集合中”。
    • 十进制和 = 0; for (int i = 0; i
    • 您正在为 DataGridview 使用 DataBinding,因此无法添加新行,如果要将总和设置到 TextBox,只需删除最后一行并写入 textBox1.Text = sum.ToString ();.
    • 是的,我已经把它放好了。我想知道是否可以在最后一行显示总和..
    • 数据绑定的来源是什么?是 DataTable 还是什么?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-30
    • 1970-01-01
    相关资源
    最近更新 更多