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