DataView dv = ds.Tables[0].DefaultView;??0和defaultview代表什么

2024-11-15 07:36:05
推荐回答(1个)
回答1:

DataTable 的原始输出格式可以透过DefaultView 属性来取得, DefaultView 属性本身就是DataView 对象 ;我们可以设定DefaultView 的属性来指定DataTable 的显示格式。如果预设的一个DefaultView 这个DataView 对象无法满足你的需求,我们还可以产生多个DataView 对象来制定多个数据显示外观。下表列出了DataView 对象的常用的属性及方法: 排序数据 要排序数据,可以使用DataView 对象的Sort 属性。Sort 属性是以字段做为排序的依据,其设定语法如下所示: DataView.Sort="字段一ASC|DESC [,...字段N ASC|DESC]" 下列范例指定了Members 这个DataTable 的DefaultView 的Sort 属性以UserId 做升幂排序: <%@Import Namespace=System.Data.ADO%> <%@Import Namespace=System.Data%> 我们可以利用DataView 的Rows 集合取回被DataView 对象整理过的数据,所以上述范例的执行结果如下所示: 筛选记录 要筛选记录,可以使用DataView 对象的RowFilter 属性以及RowStateFilter 属性。RowFilter属性可以利用比较运算子「<」、「>」、「<=」、「>=」以及「Like」来过滤记录中的数据,其语法如下所示: DataView.RowFilter = "条件叙述" 下列范例设定DefaultView 的RowFilter 属性,只有台北县的记录会被显示出来: <%@Import Namespace=System.Data.ADO%> <%@Import Namespace=System.Data%> 而RowStateFilter 属性则是以记录的状态来作筛选的条件。其使用语法如下所视: DataView.RowStateFilter = DataViewState.状态 可过滤的字段的状态如下表所示: 下列范例中删除了一笔记录,并且利用RowStateFilter 属性显示这笔被删除的记录: <%@Import Namespace=System.Data.ADO%> <%@Import Namespace=System.Data%> 上述程序虽然删除了DataTable 中的第一笔记录,除非使用DataSetCommand 对象的Update方法将所作的更动更新回数据源,否则是不会影响数据源的数据状态。 搜寻数据 要搜寻DataTable 里面的数据,可以利用DataView 的Find 方法。如果Find 方法有找到符合的数据,则传回数据所在记录的Index 值;倘若没找到则传回-1。其使用语法如下所示: 变数= DataView.Find("要搜寻的字符串") 列范例可以在文字输入盒中输入数据,按下确定后利用Find 方法找寻使用者的数据,并显示数据所在记录的Index 值: <%@Import Namespace=System.Data.ADO%> <%@Import Namespace=System.Data%>

请输入所要查询的数据:
产生自订的DataView 对象 如果一个DataView 对象不能满足我们的需求,我们还可以建立多个DataView 对象来制定数据的显示格式。其宣告语法如下所示: Dim 变量As DataView = New DataView(数据表) 下列范例中从同一个DataTable 中产生了两个自订的DataView 对象,并指定不同的数据排序方式: <%@Import Namespace=System.Data.ADO%> <%@Import Namespace=System.Data%> 我们可以将DataView 直接当成DataTable 来使用,因为DataView 的数据来源还是DataTable对象,所以我们对DataView 对象所执行的任何操作都会影响原来的DataTable 中的数据。下列范例显示修改DataView 中的数据对原来DataTable 对象的影响: <%@Import Namespace=System.Data.ADO%> <%@Import Namespace=System.Data%> 上列范例码修改了dv1st 这个DataView 对象中第一笔记录的数据,其修改会影响原数据源;由于dv2nd 这个DataView 的资料来源也是从原DataTable 中取得,故dv2nd 的资料显示也受影响。