【实例应用】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还有许多常用的方法,在此就不一一举例了,熟练的掌握这些方法,能让我们更快更好的完成学习任务,在实践中慢慢积累吧。

 





   

0 0
原创粉丝点击