【实例应用】DATATable那些事儿
来源:互联网 发布:淘宝怎么发帖 编辑:程序博客网 时间:2024/04/27 21:14
这几天做成绩分析,天天跟DataTable混在一起,应用了其众多属性和方法。今天,就来八一八DataTable那些常用的方法。
一、去除重复行的操作
在项目中,经常会对表进行固定列的去重操作,此方法就是去除PaperID和PaperName的重复行,并返回这两列:
DataTable dtOld = DataTable(); //…DataView myDataView = new DataView(dtOld);//去掉重复行的DataView,dtOld为需要转换的表DataTable dtDistinct = myDataView.ToTable(true, new string[] { "PaperID", "PaperName" });//DataView的ToTable(true,字段)方法是去掉重复的数据//第一个参数,true 去除重复,false 不去除//第二个参数, 需要显示并去重的字段,这里用的paperID和PaperName
二、合并两个结构相同的表
dtOld,dtNew分别是两个结构相同的非空表,把两个表合并成一个表为:
//Merge dtOld into dtNewdtNew.Merge(dtOld);
三、DataTable进行数据统计
我们可以轻松的使用SQL Sever进行数据统计,同样,也可以对检索出来的DataTable进行数据统计,我们可以通过函数Compute进行统计。
1、函数说明
public object Compute(string strExpression,string strFilter);
strExpression:要计算的表达式字符串,基本上类似于Sql Server中的统计表达式。
strFilter:统计的过滤字符串,只有满足这个过滤条件的记录才会被统计。
2、实例
假设得到如下表dtSport:
1)统计所有得分为零的数量:
object n=dtSport.Compute("count(ID)","Score=0");
2)统计各项的平均得分
decimal averScore=Convert.ToDecimal(dtSport.Compute("avg(Score)","true"));
3)所有项目的总分
int intAll = Convert.ToInt32(dtSport.Compute("sum(Score)","true"));
四、动态筛选信息并添加到新表中
已知datatable表dtSport(如上图),在此以筛选得分大于2分的记录为例:
DataTable dtFilter = new DataTable();dtFilter = dtSport.Clone(); //得到数据结构和dtSport相同的表//dtSport.Copy(); 得到和dtSport相同的表 for (int i = 0; i < dtSport.Rows.Count; i++){ DataRow[] dr = dtSport.Select("Score>'2' "); if (dr != null && dr.Length > 0) { //显示有记录 dtFilter.ImportRow(dr[0]); //得到满足条件的datatable dtFilter }}
DataTable还有许多常用的方法,在此就不一一举例了,熟练的掌握这些方法,能让我们更快更好的完成学习任务,在实践中慢慢积累吧。
- 【实例应用】DATATable那些事儿
- 《CSS那些事儿》应用篇
- HTTPS那些事儿(二)-实例分析
- 类方法和实例方法 那些事儿
- j2ee那些事儿之JDBC 应用
- 应用安全工作的那些事儿
- 应用安全工作的那些事儿
- 那些事儿
- 移动应用推广的那些事儿:应用发现篇
- Hadoop那些事儿(四)---MapReduce编程实例(基础)
- PhoneGap应用开发的那些坑爹事儿
- iOS应用安全开发你不知道的那些事儿
- Android应用生死轮回的那些事儿(1) - installd初探
- Android应用生死轮回的那些事儿(2) - PackageManager
- Android应用保存图片到系统图库那些事儿
- 【产品那些事儿】产品经理那些事儿
- 西工大:那些人儿、那些事儿
- 明朝的那些事儿
- Kali Mysql 登录失败:MySQL - ERROR 2002 (HY000): Can't connect to local MySQL server through socket
- [Leetcode 165, Easy] Compare Version Numbers
- Q9.2 Find paths
- thinkphp3.2.2生成mysql3级数据库城市和js数组
- js调试
- 【实例应用】DATATable那些事儿
- [C++]LeetCode: 120 Permutations II
- Python标准库:内置函数min(iterable, *[, key, default])
- 在图像需要位置画方框_opencv(1)
- 物体的移动方式(转载)
- 云计算设计模式翻译(二):Circuit Breaker Pattern(断路器模式)
- Mysql中自增字段(AUTO_INCREMENT)的一些常识
- Ubuntu 学习笔记之二
- 从给定的N个正数中选取若干个数之和最接近M