Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在DataView筛选器中使用聚合函数_C#_Datatable_Dataview_Aggregate Functions_Filter - Fatal编程技术网

C# 在DataView筛选器中使用聚合函数

C# 在DataView筛选器中使用聚合函数,c#,datatable,dataview,aggregate-functions,filter,C#,Datatable,Dataview,Aggregate Functions,Filter,我有一个数据表,它有一列(“利润”)。我想要的是得到这个表中所有值的总和。我试着用下面的方式做这件事 DataTable dsTemp = new DataTable(); dsTemp.Columns.Add("Profit"); DataRow dr = null; dr = dsTemp.NewRow(); dr["Profit"] = 100; dsTemp.Rows.Add(dr); dr = dsTemp.NewRow(); dr["Profit"] = 200; dsTem

我有一个数据表,它有一列(“利润”)。我想要的是得到这个表中所有值的总和。我试着用下面的方式做这件事

DataTable dsTemp = new DataTable();

dsTemp.Columns.Add("Profit");

DataRow dr = null;

dr = dsTemp.NewRow();
dr["Profit"] = 100;
dsTemp.Rows.Add(dr);

dr = dsTemp.NewRow();
dr["Profit"] = 200;
dsTemp.Rows.Add(dr);

DataView dvTotal = dsTemp.DefaultView;
dvTotal.RowFilter = " SUM ( Profit ) ";

DataTable dt = dvTotal.ToTable();
但我在应用过滤器时出错。。。 如何获得变量中利润列的总和


谢谢您……

将数据列设置为数字类型(int、decimal等):

使用:


请注意,聚合不是一种过滤器,这是您正在使用的方法的主要问题。

我使用了DataTable的计算方法,正如建议的那样,它工作得很好。我应用了与DataView(用于在数据网格中显示已排序和过滤的数据)相同的过滤,以及聚合函数

string SingleVocheridSale ="1";

 DataView view = new DataView(dt);
 view.RowFilter = string.Format("VOCHID='" + SingleVocheridSale + "'");
 dataGridview1.DataSource = view;
 object sumObject;
 sumObject = dt.Compute("Sum(NETAMT)", view.RowFilter);
 lable1.Text = sumObject.ToString();
int total = dsTemp.Compute("Sum(Profit)", "");
string SingleVocheridSale ="1";

 DataView view = new DataView(dt);
 view.RowFilter = string.Format("VOCHID='" + SingleVocheridSale + "'");
 dataGridview1.DataSource = view;
 object sumObject;
 sumObject = dt.Compute("Sum(NETAMT)", view.RowFilter);
 lable1.Text = sumObject.ToString();