首页 | 互联网 | IT动态 | IT培训 | Cisco | Windows | Linux | Java | .Net | Oracle | 软件测试 | C/C++ | 嵌入式开发 | 存储世界 | 服务器
网络设备 | IDC | 安全 | 求职招聘 | 数字网校 | 网页设计 | 平面设计 | 技术专题 | 电子书下载 | 教学视频 | 源码下载 | 搜索 | 博客 | 论坛
中国IT实验室Dotnet频道
中国IT教育
Google
首页 ASP.NET  C#  XML/WebService ADO.NET VC.NET VB.NET .NET 资讯动态 专题 RSS订阅 讨论 下载
您现在的位置: 中国IT实验室 >> Dotnet >> 资讯动态 >> 正文

脱机数据的排序、搜索和筛选

        DataView还有一个复杂的构造函数,可以设置Table、RowFilter、Sort和RowStateFilter属性,示例代码如下:

         vue.Table=tbl;
        vue.RowFilter=”Country=’USA’”;
        vue.Sort=”City DESC”;
        DataViewRowState dvrs=DataViewRowState.ModifiedOriginal;
        vue.RowStateFilter=dvrs; //仅查看修改过的行的原始值
        或 vue=new DataView(tbl,”Country=’USA’”,”City DESC”,dvrs);

        DataView类的Count属性,返回可以通过DataView看到的数据行数。

        DataRowView类

        DataTable类通过DataRow对象访问数据项;DataView类通过DataRowView对象访问数据项,其功能与DataRow类似。

         DataView vue=new DataView(tbl);
        DataRowView row=vue[0];
        Console.WriteLine(row[“CompanyName”]);

        DataView中搜索数据

        DataView类通过RowFilter和RowStateFilter属性支持筛选,它还支持通过Find和FindRows方法搜索,其用法与DataTable类的Find方法类似。

        Find方法

        设置DataView对象的Sort属性后,根据Sort属性所指定的列来调用Find方法,提供一个值或一组值作为参数。Find方法的返回值是一个整型值,代表查找到的行所在DataVier中的索引,如果没查找到符合条件的值,则返回-1。

         DataView vue=new DataView(tbl);
        vue.Sort=”ContactName”;
        int intIndex=vue.Find(“Fran Wilson”);
        if(intIndex<>-1)
        Consol.WriteLine(vue[intIndex][“CompanyName”]);

        FindRows方法

        DataTable的Find方法根据DataTable对象的PrimayKey属性中所指定的列进行搜索,所以至多返回一条符合条件的数据行。DataView的Find方法根据Sort属性所指定的列进行搜索,可能有多个符合条件的值,但其只返加一个符合条件的索引值。

        DataView类提供FindRows方法来处理其返回的多个数据行,FindRows方法返回符合搜索条件的DataRowView对象数组。

         DataView vue=new DataView(tbl);
        vue.Sort=”Country”;
        DataRowView[] aRows=vue.FindRows(“Spain”);
        if(aRows.Length==0)
        Consol.WriteLine(“No rows Find”);

        修改DataRowView对象

        DataRowView修改DataView的一行数据类似DataRow修改DataTable的一行数据,DataRowView对象也有BeginEdit、EndEdit、CancelEdit和Delete方法。

        DataRowView的AddNew方法返回一个新的DataRowView对象,但只到其调用EndEdit方法后,新行才被真正的添加到相应的DataTable中。

         DataView vue=new DataView(tbl);
        DataRowView row=vue.AddNew();
        row[“……”]=”…”;
        …
        row.EndEdit();

        DataView创建DataTable

        DataView类的ToTable方法返回一个DataTable对象,其中仅包括DataView的RowFilter属性设置可见的行。

         DataTable tblAllCustomers=new DataTable(“Customers”);
        DataView vue=new DataView(tblAllCustomers);
        vue.RowFilter=”Country=’Spain’”;
        DataTable tblSpanishCustomers=vue.ToTable(“SpanishCustomers”);

        以上代码由DataView创建的DataTable将包含DataView中所有列,可以通过DataView的ToTable的重载方法来控制生成的DataTable所包含的列。

         DataTable tblSpanishCustomers;
        tblSpanishCustomers=vue.ToTable(“SpanishCustomers”,true,
        new string[] {“City”,”Country”});

        其中第二个参数代表是否返回的新列组合的结果集是否是唯一值。相当于SQL查询中的distinct的功能。

上一页  [1] [2] 

【责编:michael】

中国IT教育

相关产品和培训
文章评论
 友情推荐链接
 认证培训
 专题推荐

 ·WEB程序开发--ASP.NET和PHP、JSP究竟学哪个?
 ·五步带你入门XML
 ·关于Java框架技术专题
 ·XML全攻略技术专题
 ·JAVA开源技术介绍专题
 ·Java嵌入式开发之J2ME技术专题
 ·超前体验 Oracle 11g的5个新特性…
 ·揭密使用VB.NET的五个实用技巧
 ·Oracle和SQL Server常用函数对比专题…
 ·展现C#世界 C#程序设计专题…
 今日更新
 社区讨论
 博客论点
 频道精选
 Dotnet频道相关导航