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

我有一个DataTable有5列:

  • ID
  • 名称
  • 帐号

DataTable包含5行。

如何将标签控制中的金额列的总和显示为“总金额”?

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

来自链接的MSDN文章的使用示例:

DataTable table; table = dataSet.Tables["YourTableName"]; // Declare an object variable. object sumObject; sumObject = table.Compute("Sum(Amount)", ""); 

在您的总金额标签中显示结果,如下所示:

 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; } 

在Datatable中计算列的总和,Works 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;名字空间using System.Linq;

您可以在Myblog中使用c#在数据表中find总计,小计,总计的总数

尝试这个

 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")) 
Interesting Posts