博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
DataTable
阅读量:6531 次
发布时间:2019-06-24

本文共 1985 字,大约阅读时间需要 6 分钟。

.net  2.0  排序DataTable
DataView dv = dt.DefaultView;
dv.Sort =
"c1 Asc"
;
DataTable dt2 = dv.ToTable();
 
        DataTable ShowTable = new DataTable("table");
            ShowTable.Columns.Add("id", System.Type.GetType("System.String"));
            ShowTable.Columns.Add("Name", System.Type.GetType("System.String"));
            ShowTable.Columns.Add("NewName", System.Type.GetType("System.String"));
            ShowTable.Columns.Add("DaoZhenCount", System.Type.GetType("System.Int32"));
            ShowTable.Columns.Add("YuYueCount", System.Type.GetType("System.String"));
 
              DataRow add_row =ShowTable.NewRow();
                    add_row[0] = ZiXunIdList.Rows[i][0];//id
                    add_row[1] = ZiXunIdList.Rows[i][1];//姓名
 
一、在DataTable中查找
1. 使用Select方法查找没有主键的表
DataTable的Select方法返回一个DataRow数组,有四个重载的函数。
 
  1. DataRow[] drs = dt.Select("UserName LIKE '张%'");  
 
  1.   

2. 使用Find方法查找有主键的表

分两种情况:
(1) 主键只有一个字段

 

 
  1. DataRow dr = dt.Rows.Find("主键字段的值");  
(2) 主键有多个字段
例如,表的主键由一个整型字段ID和一个字符类型自动Name组成,以下代码查找满足ID=10且Name="张三"条件的记录。
 
  1. Object[] objs = new Object[]{10,"张三"};  
  2. dr = dt.Rows.Find(objs);  
二、使用DataView筛选数据

DataView 可以看成DataTable中的记录加上某种条件后得到的数据。DataView依附于DataTable,每个DataTable都至少有一个 DataView。数据绑定中控件绑定到的其实不是DataTable,而是DataTable的DefaultView。

DataView常用的数据筛选方法有:
1. 筛选特定状态的行

以下代码找出所有新加的行:

 

 
  1. dv.RowStateFilter = DataViewRowState.Added;  

2. 使用Sort属性,可以指定单个或多个列进行排序,如:

 
  1. dv.Sort = "Name ASC,ID DESC";  
3. 使用RowFilter属性动态筛选记录。

 

 
  1. dv.RowFilter = "Name LIKE '张%'";  
 
  1. 4. 使用Find和FindRows在DataView中查找。  
使用这两个方法,是按照行的排序关键字值来对行进行搜索的。

Find方法返回一个整数,表示匹配搜索条件的DataRowView的索引。如果多行匹配,只返回一个匹配行索引,如果未找到匹配项,返回-1。

若要返回匹配多个行的搜索结果,可以使用FindRows方法。它返回DataView中的所有匹配行的DataRowView数组。如果未找到匹配项,DataRowView数组为空。

若要使用Find或FindRows方法,必须通过将ApplyDefaultSort设置为true或通过使用DataView对象的Sort属性来指定排序顺序,否则将引发异常。这两种方法将一个值数组用做输入,该数组的长度与排序顺序包含的列数相匹配。当对多个列进行排序时,对象数组的值必须匹配在DataView的Sort属性中指定的列的顺序。

对具有单个列排序顺序的DataView调用Find方法。

 

 
  1. dv.Sort = "Name";  
  2. int rowIndex = dv.Find("张三");  

如果Sort属性指定多个列,则必须按照Sort属性指定的顺序为每个列传递包含搜索值的对象数组。

 
  1. dv.Sort = "Name,ID";  
  2. DataRowView[] foundRows = dv.FindRows(new Object[]{"张%","001"}); 

转载于:https://www.cnblogs.com/jinhaoObject/p/5304903.html

你可能感兴趣的文章
做业务与技术之间的桥梁
查看>>
SFB 项目经验-17-Windows 2012 R2-补丁打到最新-问题-KB2982006
查看>>
用hadoop中的libhdfs和fuse-dfs构建快速云存储
查看>>
不知道自己不知道(Unknown Unknowns)的知识决定了你的发展
查看>>
Apple Watch的非“智能手表”卖点
查看>>
fedora17升级到fedora18
查看>>
单例模式(Singleton)
查看>>
函数指针和指针函数
查看>>
认识配置设置文件(INI与XML)
查看>>
Python的函数参数传递:传值?引用?
查看>>
[转]分享2011年8个最新的jQuery Mobile在线教程
查看>>
android call require api level
查看>>
Mac下android环境搭建
查看>>
创建Visual Studio项目模版向导的几篇参考文章
查看>>
深入浅出SQL Server Replication第一篇:走近Replication(上)
查看>>
[TopCoder][SRM] SRM 562 DIV 2
查看>>
SQLSERVER是怎麽通过索引和统计信息来找到目标数据的(第一篇)
查看>>
LocalAlloc,VirtualAlloc,malloc,new的异同
查看>>
回调函数
查看>>
win7 x64 jdk1.7.0_51
查看>>