DataTable过滤器和列的总和不使用循环C# [英] DataTable Filter and Sum Of Column Without Use Loop C#
本文介绍了DataTable过滤器和列的总和不使用循环C#的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我按照建议使用了DataTable的Compute方法,它工作正常。我使用与我用于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();
解决方案
嗨Sagar,
< p style ="">你真正的问题是什么?
你是如何定义数据表的?
I做了一个简单的演示,请参考下面的内容:
private void button1_Click(object sender,EventArgs e)
{
DataTable dt = new DataTable();
dt.Columns.AddRange(new DataColumn [] {
new DataColumn(" ID",Type.GetType(" System.Int32" )),
新DataColumn(" Name",Type.GetType(" System.String"))),
new DataColumn(" ; Age",Type.GetType(" System.Int32"))
});
dt.Rows.Add(new object [] {1," Jack",23});
dt.Rows.Add(new object [] {2," Jim",23});
dt.Rows.Add(new object [] {3," James",24});
string SingleVocheridSale =" 23" ;;
DataView view = new DataView(dt);
view.RowFilter = string.Format(" Age ='" + SingleVocheridSale +"'");
dataGridView1.DataSource = view;
object sumObject;
sumObject = dt.Compute(" Sum(ID)",view.RowFilter); // 计算int列
label1.Text = sumObject.ToString();
}
问候,
Frankie
I used the DataTable's Compute method as suggested, and it works fine. I apply the same filtering as I use for the DataView (which is used to display the sorted and filtered data in the datagrid) together with an aggregate function. Thanks for your help!
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();
解决方案
Hi Sagar,
What is your real problem?
How did you define the datatable?
I made a simple demo, please refer to it as below:
private void button1_Click(object sender, EventArgs e) { DataTable dt = new DataTable(); dt.Columns.AddRange(new DataColumn[] { new DataColumn("ID",Type.GetType("System.Int32")), new DataColumn("Name",Type.GetType("System.String")), new DataColumn("Age",Type.GetType("System.Int32")) }); dt.Rows.Add(new object[] { 1, "Jack", 23 }); dt.Rows.Add(new object[] { 2, "Jim", 23 }); dt.Rows.Add(new object[] { 3, "James", 24 }); string SingleVocheridSale = "23"; DataView view = new DataView(dt); view.RowFilter = string.Format("Age='" + SingleVocheridSale + "'"); dataGridView1.DataSource = view; object sumObject; sumObject = dt.Compute("Sum(ID)", view.RowFilter);//Calculate the int column label1.Text = sumObject.ToString(); }
Regards,
Frankie
这篇关于DataTable过滤器和列的总和不使用循环C#的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文