关于DataView 性能

                                                         DataView 性能

如果要返回对数据的特定查询的结果(而 不 是提供数据子集的动态视图), 要实现最佳性能,v 请使用 DataView 的 Find 或 FindRows 方法,而v 不v 是设置 RowFilter 属性。 设置 RowFilter 属性会重新生成数据的索引,v 从而v 增加应用程序的系统开销并降低性能。 最好将 RowFilter 属性用于通过绑定控件显示筛选结果的数据绑定应用程序。 Find 和 FindRows 方法会利用当前的索引,而v 不v 需要重新生成索引。
Find 方法返回一个整数,该整数表示匹配搜索条件的 DataRowView 的索引。 如果多个行匹配搜索条件,则只返回第一个匹配 DataRowView 的索引。 如果未找到匹配项,Find 将返回 -1。
若要返回匹配多个行的搜索结果,可以使用 FindRows 方法。 FindRows 的工作方式与 Find 方法类似,不同的只是前者返回引用 DataView 中所有匹配行的 DataRowView 数组。 如果未找到匹配项,DataRowView 数组将为空。


 

用 RowFilter 属性设置筛选之后,可以清除 DataView 上的筛选器。 DataView 上的筛选器可以采用两种不同的方式清除:
v 将 RowFilter 属性设置为 null。
v 将 RowFilter 属性设置为一个空字符串。
如DataTable orders = dataSet.Tables["SalesOrderHeader"];
EnumerableRowCollection<DataRow> query = from order in orders.AsEnumerable()
                                         where order.Field<DateTime>("OrderDate") > new DateTime(2002, 11, 20)
                                            && order.Field<Decimal>("TotalDue") < new Decimal(60.00)
                                         select order;
 DataView view = query.AsDataView();
bindingSource1.DataSource = view;

view.RowFilter = null;

转载于:https://www.cnblogs.com/yutao8883412/archive/2009/02/16/1391438.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值