如何计算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"))