DataTable相关:DataTable排序、查询、合并操作

来源:互联网 发布:算法 第4版 pdf 高清 编辑:程序博客网 时间:2024/06/08 20:12

前面说过使用DataTable组织数据库数据:http://blog.csdn.net/yysyangyangyangshan/article/details/7265362。组织好数据后自然是放在了内存中,那么如何再对这些数据进行操作呢?下面简单介绍下利用DataTable的属性进行常用的排序、搜索、合并的操作。
    说明:为了代码统一,假设所有的操作对象都是DataTable类型的,且引用dataTable有值。(在实际应用中也一样,尽量都转换成DataTable型)
    DataTable dataTable;
    1、排序
    1.1、利用查询排序

[csharp] view plaincopyprint?
  1. DataRow[] dataRows = dataTable.Select("条件""id asc");  
  2. //或多列排序  
  3. DataRow[] dataRows = dataTable.Select("条件""id asc,name asc,...");  
  4. //对所有的进行排序  
  5. DataRow[] dataRows = dataTable.Select("1=1""id asc,name asc,...");  

    1.2、默认视图排序

[csharp] view plaincopyprint?
  1. DataView dataView = dataTable.DefaultView;  
  2. dataView.Sort = "id asc";  
  3. dataTable = dataView.ToTable();  
       或者可以这样
//视图DataView dv=  dt.DefaultView;dv.RowFilter="";//此处可以跟类似数据库的操作语句例如:dv.RowFilter="Age>=18";//表DataTable dt = dv.Table


    2、搜索
    如果单纯搜索,

[csharp] view plaincopyprint?
  1. DataRow[] dataRows = dataTable.Select("条件");  

或者

[csharp] view plaincopyprint?
  1. int id;  
  2. string name;  
  3. DataRow[] dataRows = dataTable.Select(string.Format(@"id={0} and name={1}",id,name));  

如果对搜索结果排序,如同1.1。
     说明:select方法如同sql语句对单表的查询,条件如同sql语句的where之后的部分,>,<,=,LIKE等都可以使用。
    3、合并
    合并的对象必须结构要一致,如果不一致先转换一致。然后,利用Merge方法,

[csharp] view plaincopyprint?
  1. DataTable dataTable1 = null;  
  2. DataTable dataTable2 = null;  
  3. dataTable1.Merge(dataTable2);  
  4.              

相关的DataTable的操作有,
行的初始化:http://blog.csdn.net/yysyangyangyangshan/article/details/7021107。

数组转DataTable:http://blog.csdn.net/yysyangyangyangshan/article/details/6947024。


转载自:http://blog.csdn.net/yysyangyangyangshan/article/details/7349551

0 0
原创粉丝点击