DataTable过滤器和列的总和不使用循环C# [英] DataTable Filter and Sum Of Column Without Use Loop C#

查看:87
本文介绍了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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆