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

时间:2010-06-22 04:29:09

标签: c# asp.net ado.net dataview

我需要将两个DataViews一起添加到一个Dataview中,然后可以绑定到Repeater。

我正在插入其他人的API,因此我无法更改在SQL级别检索数据的方式。

基本上我想这样做:

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

ModuleView = dView1 + dView2;

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

视图的两个模式只是检索活动和非活动模块。

有什么想法吗?

感谢。

2 个答案:

答案 0 :(得分:6)

您可以将数据视图合并为...

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

答案 1 :(得分: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方法将指定的DataTable与当前值合并   数据表。

     

Merge方法用于合并两个   具有很大的DataTable对象   类似的模式。通常是合并   用于客户端应用程序   纳入最新的变化   数据源成现有的   数据表。这允许客户端   申请要刷新   DataTable包含最新数据   数据源。

     

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