New DataView vs. DefaultView of a DataTable

本文关键字:DataTable of DefaultView DataView vs New | 更新日期: 2023-09-27 18:00:50

为什么要构造一个新的DataView,而不是使用C#中DataTableDefaultView

创建新的DataView的方案是什么?

两者的优点和缺点是什么?

var dataView = new DataView(dataTable);

var dataView = dataTable.DefaultView;

New DataView vs. DefaultView of a DataTable

顾名思义,DefaultView的优点是默认情况下已经存在。

附加数据视图的优点是允许您将其中几个视图准备好并并行使用。

因此,您可以以不同的方式筛选排序其中的3个,并将3个不同的控件绑定到它们上,例如three DataGridViewsDGV以及ComboboxCellItems

引用自这篇文章:

数据视图是数据表上的视图,有点像sql视图。它允许您可以对行进行筛选和排序,通常用于绑定到windows窗体控制此外,可以自定义DataView以显示DataTable中数据的子集。此功能允许您绑定到同一DataTable但显示不同的两个控件数据的版本。

另一种创建新DataView的场景更可取,它是会话之间共享的asp全局(应用程序变量(数据表。带有rowfilter的Defaultview不可取,因为应用的筛选器会影响所有会话Defaultview。因此,您必须为每个会话创建数据视图。vb.net

Application("dt") = New DataTable() - persits across sessions
Application("dt").DefaultView.RowFilter="Field = Value" - not preferable because it apply all sessions
Session("dv") = New DataView(Application("dt"))
Session("dv").RowFilter="Field = Value" - preferable