C# DataTable中的计算函数
来源:互联网 发布:word数据转换成excel 编辑:程序博客网 时间:2024/05/21 14:06
在日常开发中很少使到DataTable实现业务,因此知道DataTable的用法并不多,除了普通的查询以及排序。现在分享一个DataTable中的运算函数Compute,它能帮助我们直接使用DataTable进行求和、求个数等操作,这对于数据后加工挺有效果,因此分享一下,用法如下:
函数名:Compute
参数1:expression 表达式
参数2:filter 条件表达式
如:dataTable1中包含了ID,QTY(数量)两个字段
ID QTY
1 4
2 5
3 6
现在需要求ID大于1的和
var sum=dataTable1.Compute("Sum(QTY)","ID>1");
既可以实现,有点需要注意的地方就是,要进行聚合函数的列必须定义成数字类型,如int,decimal等。
static void Main(string[] args)
{
var dataTable1= InitDataTable();
Console.WriteLine(dataTable1.Compute("sum(QTY)","ID>1"));
Console.ReadKey();
}
/// <summary>
/// 初始化DataTable
/// </summary>
/// <returns></returns>
private static DataTable InitDataTable()
{
DataTable dataTable1 = new DataTable();
DataColumn dc = new DataColumn
{
ColumnName = "ID",
Caption = "序号"
};
dataTable1.Columns.Add(dc);
dc = new DataColumn
{
ColumnName = "QTY",
Caption = "数量",
DataType=typeof(decimal)
};
dataTable1.Columns.Add(dc);
DataRow dr = dataTable1.NewRow();
dr["ID"] = 1;
dr["QTY"] = 5;
dataTable1.Rows.Add(dr);
dr = dataTable1.NewRow();
dr["ID"] = 2;
dr["QTY"] = 54;
dataTable1.Rows.Add(dr);
dr = dataTable1.NewRow();
dr["ID"] = 3;
dr["QTY"] = 6;
dataTable1.Rows.Add(dr);
dr = dataTable1.NewRow();
dr["ID"] = 4;
dr["QTY"] = 7;
dataTable1.Rows.Add(dr);
return dataTable1;
}
如果使用两个字段的乘积求和需要提前设定表达式即在创建DataColunm时设定。
dc = new DataColumn
{
ColumnName = "TOTAL",
Caption = "ID*QTY",
DataType = typeof(decimal),
Expression="ID*QTY"
};
dataTable1.Columns.Add(dc);
效果如下:
static void Main(string[] args)
{
var dataTable1= InitDataTable();
Console.WriteLine(dataTable1.Compute("sum(TOTAL)","ID>1"));
Console.ReadKey();
}
/// <summary>
/// 初始化DataTable
/// </summary>
/// <returns></returns>
private static DataTable InitDataTable()
{
DataTable dataTable1 = new DataTable();
DataColumn dc = new DataColumn
{
ColumnName = "ID",
Caption = "序号",
DataType = typeof(decimal)
};
dataTable1.Columns.Add(dc);
dc = new DataColumn
{
ColumnName = "QTY",
Caption = "数量",
DataType=typeof(decimal)
};
dataTable1.Columns.Add(dc);
dc = new DataColumn
{
ColumnName = "TOTAL",
Caption = "ID*QTY",
DataType = typeof(decimal),
Expression="ID*QTY"
};
dataTable1.Columns.Add(dc);
DataRow dr = dataTable1.NewRow();
dr["ID"] = 1;
dr["QTY"] = 5;
dataTable1.Rows.Add(dr);
dr = dataTable1.NewRow();
dr["ID"] = 2;
dr["QTY"] = 54;
dataTable1.Rows.Add(dr);
dr = dataTable1.NewRow();
dr["ID"] = 3;
dr["QTY"] = 6;
dataTable1.Rows.Add(dr);
dr = dataTable1.NewRow();
dr["ID"] = 4;
dr["QTY"] = 7;
dataTable1.Rows.Add(dr);
return dataTable1;
}
- C# DataTable中的计算函数
- C#中的DataTable学习心得
- C#中的DataTable详解
- C# datatable的统计计算
- C#中的DataSet,DataTable,DataView
- C#中的Datatable(初步)
- C#详解DataTable计算功能的实现
- C# 计算标准偏差相当于Excel中的STDEV函数
- C# 计算标准偏差相当于Excel中的STDEV函数
- C#中的DataSet,DataTable和DataView
- C# DataTable中返回列中的最大值
- C#中DataTable中的Compute方法使用
- sharepoint 2010 list利用datatable聚合函数快速计算
- C# DataTable
- C# DataTable
- C# DataTable
- C# DATATABLE
- c# DataTable
- 写给自己
- 无须对抗分心也能更专注(笔记)
- 华为P9移动定制版刷为联通移动双4G版本
- 2018年小米校招笔试题
- Pythonic Data Structures and Algorithms(Array 4)
- C# DataTable中的计算函数
- explicit关键字和隐式的类类型转换
- 数据库中常用的约束和约束作用
- 有关Mysql1067错误的一点难过经历
- 记录工作中的奇葩事儿
- 检查一个变量是否是数字或者数字字符串
- freemarker合并单元格
- Servlet(3)—Servlet
- spring boot 发送邮件