C# 如何计算asp.net中datatable列的总和?

C# 如何计算asp.net中datatable列的总和?,c#,asp.net,user-controls,datatable,C#,Asp.net,User Controls,Datatable,我有一个DataTable,它有5列: 身份证 名字 帐号 分支机构 数量 DataTable包含5行 如何将Label控件中的Amount列的总和显示为“Total Amount”要计算DataTable中的列总和,请使用该方法 链接MSDN文章中的用法示例: DataTable table = dataSet.Tables["YourTableName"]; // Declare an object variable. object sumObject; sumObject = tab

我有一个DataTable,它有5列:

  • 身份证
  • 名字
  • 帐号
  • 分支机构
  • 数量
DataTable包含5行


如何将Label控件中的Amount列的总和显示为“Total Amount”

要计算DataTable中的列总和,请使用该方法

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

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

// Declare an object variable.
object sumObject;
sumObject = table.Compute("Sum(Amount)", string.Empty);
在总额标签中显示结果,如下所示:

lblTotalAmount.Text = sumObject.ToString();
this.LabelControl.Text=datatable.AsEnumerable()
.Sum(x=>x.Field(“金额”))
.ToString();
如果要筛选结果,请执行以下操作:

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

如果您有ADO.Net数据表,您可以

int sum = 0;
foreach(DataRow dr in dataTable.Rows)
{
   sum += Convert.ToInt32(dr["Amount"]);
}
如果要查询数据库表,可以使用

Select Sum(Amount) From DataTable
你可以这样做

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

您可以使用Linq按名称分组

  var allEntries = from r in dt.AsEnumerable()
                            select r["Amount"];
使用名称空间
使用System.Linq


您可以使用c#at

计算datatable中列的和,100%工作,在datatable中找到示例总计、小计、总计

lbl_TotaAmt.Text = MyDataTable.Compute("Sum(BalAmt)", "").ToString();
如果你想要任何条件,像这样使用它

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

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"))
使用System.Linq;
(datagridview1.DataSource作为DataTable).AsEnumerable().Sum(c=>c.Field(“valor”))

您有ADO.Net DataTable还是DataTable?您指的是数据库表?数据表只是用来提供总计还是绑定到另一个控件,如gridView或repeater?你们中的大多数人纯粹是从下面的Jonathan Woods建议中提取总使用量。你们知道你们有5行吗,或者可能更多或更少?谢谢你们的效果。我得到了答案。他不需要过滤表达式,他只想计算所有行的数量。在您的答案中,Filteration表达式的意思是,它将计算EmpId=5的和。它要求filter。我没有任何过滤条件。我想对datatable中的所有行求和。Jay感谢您的解决方案。它减少了我的行代码数。@John很高兴我能帮上忙!
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"))