ADO.NET 2.0:如何建立一个 DataView

借助于DataView,我们便能够为储存于DataTable中的数据建立不同的视图。比方说,通过DataView,您可以使用不同的排序顺序检视DataTable中的数据, 亦或是根据数据列状态或筛选表达式来筛选DataTable中的资料。重要的是,当 我们需要替DataTable中的数据建立不同的视图而且需要将这些数据绑定到窗体 上的控件时,更需要使用DataView来完成。

DataView提供的是一种动态的数据视图,也就是说,其内容、排序顺序、与 成员会反应出来源DataTable中的任何变更。显然DataView与DataTable.Select 方法有很大的不同,Select方法会根据特定的筛选表达式或排序顺序从数据表中 传回一个DataRow对象数组,而且其成员与排序顺序是静态不变的。正由于 DataView的动态反应特性,因此非常适合用于数据绑定应用程序。

DataView提供您单一数据集合的动态视图,您可以对数据集合套用不同的排 序顺序和筛选条件,此点与SQL Server数据库所提供的视图(View)有点类似。然而,DataView与数据库视图仍然有相当大的差异,因为DataView无法当成数据 表来使用,也无法提供连结数据表的视图。此外,您不仅不能排除来源数据表中 的字段,也不能额外加入来源数据表中不存在的字段(例如:表达式字段)。

您可以采用两种方式来建立一个DataView。第一种方式是使用DataView建构 函式,第二种方式则是建立DataTable之DefaultView属性的一个参考。本文将详 细探讨如何使用这两种方式来建立DataView。

使用DataView建构函式

DataView建构函式共提供下表所示的三个多载版本。

DataView建构函式的多载版本

DataView()
DataView(ByVal table As DataTable)
DataView(ByVal table As DataTable, _
     ByVal RowFilter As String, _
     ByVal Sort As String, _
     ByVal RowState As DataViewRowState)

DataView建构函式的第一个版本表示不使用任何参数来初始化DataView类别 的新执行个体。请注意,如果您采用此版本来建立DataView,必须在建立 DataView对象后先设定Table属性以便决定其来源DataTable,然后才能继续设定 其它属性(RowFilter、Sort…等等)。

以下的程序代码示范如何使用第一个版本的DataView建构函式来建立 DataView对象,以便筛选和排序数据集内之「章立民工作室」数据表的数据列, 并将DataGridView控件绑定至此DataView。我们发现,DataGrid控件只会显示出 女性,并且数据会依姓名的笔画顺序由多至少排列。以下是本范例的程序代码:

SqlDataAdapter1.Fill(Ds章立民工作室, "章立民工作室")
' 建立 DataView 对象
Dim dv As DataView = New DataView

' 由于采用没有任何参数的 DataView 建构函式来建立 DataView 对 象,
' 因此必须先设定 Table 属性以便决定其来源 DataTable
dv.Table = Ds章立民工作室.章立民工作室

' 设定排序顺序以便依姓名的笔画顺序由多至少排列
dv.Sort = "姓名 DESC"

' 设定筛选条件以便只显示出女性
dv.RowFilter = "性别 = '女'"

' 将 DataGridView 控件绑定至 DataView
DataGridView1.DataSource = dv

时间: 2024-09-20 06:10:13

ADO.NET 2.0:如何建立一个 DataView的相关文章

11-C#里面如何定时在每天0点建立一个以当天日期命名的文件夹,如今天20150120

问题描述 C#里面如何定时在每天0点建立一个以当天日期命名的文件夹,如今天20150120 C#里面如何定时在每天0点建立一个以当天日期命名的文件夹,如今天20150120 解决方案 写一个windows服务 设置随机机启动 参考:http://blog.csdn.net/lifeng_beijing/article/details/3973552 解决方案二: 我说的就是用C#代码写一个windows service然后在windows services里 DirInfo.create文件夹

ActionScript3.0中建立一个帧频计数器

在这个教程中,你将学会如何测量Flash中当前的帧频,并将其显示出来. 帧频的重要性每一帧上都是一幅静止的图片,快速连续的帧会产生动画,每秒的帧数越多,展现的动画也就越流畅. 测帧频能让我们检测动画的进程,如果需要的话还可以优化动画. 当在不同的运行环境中测试动画时这个是非常有用的,例如浏览器中,电脑中,电视或手机中. 我们可以通过使用getTime()方法测帧频,并即时的在舞台中创建文本域来输出结果. --------------------------– 第一步:创建新文档打开Flash并创

用C#和ADO.NET建立一个数据绑定网格

ado|数据 数据访问是任何应用程序的基础.在本文中,我将说明如何用C#和ADO.NET访问基于SQL Server的数据,以及如何在一个数据绑定的网格控件中显示数据.我用一个简单的C#应用程序为例. ADO.NET结构 使用ADO.NET不需要维持一个连接.另外,在ADO.NET中,只需用几行代码,你就可以从一个数据源转到另一个数据源. ADO.NET的核心对象有Command, Connection, DataReader和DataAdapter.它们是.NET中所有数据操作的基础. 核心A

DOTNET:LINQ与ADO.NET 3.0的创新

ado 你知道微软下一代ADO.NET 3.0资料存取技术的重大创新与改革吗? 为了让各位预览未来的ADO.NET 3.0技术,虽然祭司最近一直在忙碌于ASP.NET 2.0出版事宜,但是还是不能荒废引领各位迈向最新指术的伟大宗旨,而这不也是各位来到DotNet开发圣殿最大的目的吗,祭司约略翻译了美国微软副总Somasegar的Blog文章,前一个星期他才出尽了锋头,爆红到整个.NET圈都在引用它的文章,因为它揭露了.NET Framework 3.0的蓝图概貌,以下是翻译: Language-

ADO.NET 2.0 中的新增 DataSet 功能

ADO.NET 2.0 中的新增 DataSet 功能 发布日期: 1/13/2005 | 更新日期: 1/13/2005 Jackie Goldstein Renaissance Computer Systems 适用于: Microsoft ADO.NET 2.0 Visual Basic 编程语言 摘要:了解有关 .NET Framework DataSet 类以及与它密切相关的类中的新增 ADO.NET 2.0 功能的知识.这些更改包括对 DataSet.DataTable 和 Data

如何建立一个 XML 的开发环境

xml 学习 XML 的最佳途经是从简单的开发入手,大胆实践,循序渐进.XML 的妙处只有在开发过程中才能深入体会,离开了开发是学不好 XML 的.因此学习 XML 首先应该建立一个 XML 的开发环境.我给大家介绍一下怎样建立一个基于 Java 的 XML 开发环境.因为我现在没办法用到 Linux,所以所有的例子都是在 Windows 上做的.但是这里介绍的所有的软件在 Linux 和 Windows 上都是可以用的,用法也大同小异.而且除了 Sun 的 JRE 以外都是 open sour

如何建立一个 XML 的开发环境(1)

xml   学习 XML 的最佳途经是从简单的开发入手,大胆实践,循序渐进.XML 的妙处只有在开发过程中才能深入体会,离开了开发是学不好 XML 的.因此学习 XML 首先应该建立一个 XML 的开发环境.我给大家介绍一下怎样建立一个基于 Java 的 XML 开发环境.因为我现在没办法用到 Linux,所以所有的例子都是在 Windows 上做的.但是这里介绍的所有的软件在 Linux 和 Windows 上都是可以用的,用法也大同小异.而且除了 Sun 的 JRE 以外都是 open so

用ASP建立一个简单的聊天室

聊天室|聊天室     经过一个阶段的asp学习,下面我们结合所学过的内容建立一个最简单的聊天室,虽然很简单,但是大家可以通过他来掌握一个聊天室建立的基本过程,并且可以不断的完善其功能. 下面介绍其主要步骤: 1,添加Global.asa文件里面的代码.这部分代码主要处理Application_onStart事件,在此事件中,定义了一个有15个元素的数据,并把它赋给了一个Application对象的属性.Global.asa文件的内容如下. <SCRIPT LANGUAGE="VBScri

在Flash中怎样建立一个数组

数组 在Flash中怎样建立一个数组呢,有下面这些方法: 方法 1:创建初始长度为 0 的新 Array 对象. var my_array:Array = new Array();  trace(my_array.length); // 返回 0 方法 2:创建初始长度为 4 的新 Array 对象. var my_array:Array = new Array(4);  trace(my_array.length); // 返回 4 方法 3:创建初始长度为 5 的新 Array 对象 my_