为什么要构建新的DataView
而不是使用C#中DefaultView
的{{1}}?
创建新DataTable
的方案有哪些?
两者的优点和缺点是什么?
DataView
VS
var dataView = new DataView(dataTable);
答案 0 :(得分:6)
DefaultView具有默认存在的优点,顾名思义。
其他DataViews的优势在于,您可以将其中的几个准备好并且正在使用并行。
所以你可以用不同的方式过滤和排序 3个并绑定3个不同的控件,例如three DataGridViews
或DGV
以及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