在数据表中添加一行,以便它显示所需列的金额总和

时间:2013-07-13 12:10:23

标签: c# data-binding datagridview datatable aggregate

大家好我将DataTable绑定到DataGridView,其中包含一些列以及一些金额字段。

我需要显示DataGridView中归档的每个金额的列总和。我已经搜索了许多选项来向DataGridView添加页脚。是否有可能在DataTable中总结一些列,以便我可以在DataGridView中显示数据?

这是我的数据表数据:

  Name  Address   Amount   DiscountAmount
   XYZ   ABC       100.00         20.00
   ABC   DEF       150.00         0.00

要求的结果是:

  Name  Address   Amount   DiscountAmount
   XYZ   ABC       100.00         20.00
   ABC   DEF       150.00         0.00
                   250.00         20.00

我已经尝试了一些像下面这样的事情 - 但它没有奏效:

DataRow lRow = lDTGrid.NewRow();
lRow[0] = "Totals";
for (int i = 1; i < lDTGrid.Columns.Count; i++)
{
  lRow[lDTGrid.Columns[i].ColumnName] = lDTGrid.Compute("Sum(" + lDTGrid.Columns[i].ColumnName + ")", "");
}

2 个答案:

答案 0 :(得分:0)

您是否尝试过使用DataTable.Compute()方法

private void ComputeBySalesSalesID(DataSet dataSet)
{
    // Presumes a DataTable named "Orders" that has a column named "Total."
    DataTable table;
    table = dataSet.Tables["Orders"];

    // Declare an object variable. 
    object sumObject;
    sumObject = table.Compute("Sum(Total)", "EmpID = 5");
}

答案 1 :(得分:0)

是否必须在datagridview中排?你不能在datagridview下使用文本框吗?更简单,更整洁。

你可以使它们无法使用,并在其中一个事件(单元格编辑,添加行或类似物)中从列中放入一笔总和。