在C#中将一个DataView添加到另一个DataView

4

我需要将两个DataView合并成一个DataView,然后将其绑定到一个Repeater上。

由于我正在接入别人的API,所以我无法改变SQL级别检索数据的方式。

因此,我的目标是:

DataView dView1 = getActiveModules();
DataView dView2 = getInactiveModules();

ModuleView = dView1 + dView2;

rptModules.DataSource = ModuleView.Tables[0];
rptModules.DataBind();

两个视图模式是相同的,只是检索活动和非活动模块。有什么想法吗?谢谢。
2个回答

6

您可以像这样合并数据视图...

System.Data.DataView dv = new System.Data.DataView();
System.Data.DataView dv1 = new System.Data.DataView();
dv.Table.Merge(dv1.Table);

3

您可以轻松地将这两个视图(数据表)合并为一个数据表。

示例语法

    Dim a As DataView
    Dim b As DataView

    a.Table.Merge(b.Table)

    Dim c As New DataView
    c.Table.Merge(a.Table) 'might generate error because c.Table is null

http://msdn.microsoft.com/en-us/library/system.data.datatable.merge.aspx

DataTable.Merge Method 合并指定的 DataTable 到当前 DataTable。

Merge 方法用于合并两个具有相似架构的 DataTable 对象。通常,合并在客户端应用程序上用于将数据源中的最新更改合并到现有的 DataTable 中。这使得客户端应用程序拥有一个带有来自数据源的最新数据的刷新后的 DataTable。

合并操作仅考虑原始表和要合并的表。子表不受影响也不包括在内。如果一张表有一个或多个子表,被定义为关系的一部分,每个子表必须单独合并。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接