繁体   English   中英

如何计算asp.net中数据表列的总和?

[英]How to calculate the sum of the datatable column in asp.net?

我有一个有 5 列的 DataTable:

  • ID
  • 姓名
  • 帐号
  • 分支
  • 数量

DataTable 包含 5 行。

如何将 Label 控件中的金额列的总和显示为“总金额”?

要计算 DataTable 中列的总和,请使用DataTable.Compute方法。

链接的 MSDN 文章中的使用示例:

DataTable table = dataSet.Tables["YourTableName"];

// Declare an object variable.
object sumObject;
sumObject = table.Compute("Sum(Amount)", string.Empty);

在总金额 Label 中显示结果,如下所示:

lblTotalAmount.Text = sumObject.ToString();
 this.LabelControl.Text = datatable.AsEnumerable()
    .Sum(x => x.Field<int>("Amount"))
    .ToString();

如果要过滤结果:

 this.LabelControl.Text = datatable.AsEnumerable()
    .Where(y => y.Field<string>("SomeCol") != "foo")
    .Sum(x => x.Field<int>("MyColumn") )
    .ToString();

你可以这样做..

DataRow[] dr = dtbl.Select("SUM(Amount)");
txtTotalAmount.Text = Convert.ToString(dr[0]);

如果你有一个 ADO.Net DataTable 你可以做

int sum = 0;
foreach(DataRow dr in dataTable.Rows)
{
   sum += Convert.ToInt32(dr["Amount"]);
}

如果要查询数据库表,可以使用

Select Sum(Amount) From DataTable
  public decimal Total()
    {
      decimal decTotal=(datagridview1.DataSource as DataTable).Compute("Sum(FieldName)","");
      return decTotal;
    }

计算数据表中列的总和,100% 有效

lbl_TotaAmt.Text = MyDataTable.Compute("Sum(BalAmt)", "").ToString();

如果你想有任何条件,像这样使用它

   lbl_TotaAmt.Text = MyDataTable.Compute("Sum(BalAmt)", "srno=1 or srno in(1,2)").ToString();

您可以按名称分组使用 Linq

  var allEntries = from r in dt.AsEnumerable()
                            select r["Amount"];

使用名称空间using System.Linq;

您可以在Myblog上使用 c# 在数据表中找到样本总计、小计、总计

尝试这个

int sum = 0;
foreach (DataRow dr in dt.Rows)
{
     dynamic value = dr[index].ToString();
     if (!string.IsNullOrEmpty(value))
     { 
         sum += Convert.ToInt32(value);
     }
}

我认为这解决了

using System.Linq;


(datagridview1.DataSource as DataTable).AsEnumerable().Sum(c => c.Field<double>("valor"))

如果您想在您的 cshtml 文件中执行此操作,您可以这样编写(包括 LAMBDA 表达式):

<td><b>£@Model.Sum(i => i.Amount)</b></td>

您可以删除 html 标签,我只是将它们留在里面以尝试帮助示例。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM