C# 如何计算asp.net中datatable列的总和?
我有一个DataTable,它有5列: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
- 身份证
- 名字
- 帐号
- 分支机构
- 数量
如何将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"))