新DataView与DataTable的DefaultView

时间:2015-07-02 07:16:35

标签: c# datatable dataview

为什么要构建新的DataView而不是使用C#中DefaultView的{​​{1}}?

创建新DataTable的方案有哪些?

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

DataView

VS

var dataView = new DataView(dataTable);

2 个答案:

答案 0 :(得分:6)

DefaultView具有默认存在的优点,顾名思义。

其他DataViews的优势在于,您可以将其中的几个准备好并且正在使用并行

所以你可以用不同的方式过滤排序 3个并绑定3个不同的控件,例如three DataGridViewsDGV以及Items ComboboxCell对他们独立

引自this post

  

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

答案 1 :(得分:0)

另一种创建新DataView的方案更可取,它是会话之间共享的asp全局(app变量)数据表。带有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