Добавить один DataView в другой в C#

Мне нужно добавить два DataView вместе, чтобы иметь один DataView, который затем можно привязать к повторителю.

Я подключаюсь к чужому API, поэтому не могу изменить способ получения данных на уровне SQL.

Итак, по сути, я хочу сделать это:

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

ModuleView = dView1 + dView2;

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

Две схемы для представлений идентичны, только извлечение активных и неактивных модулей.

Любые идеи?

Спасибо.


person Seth Duncan    schedule 22.06.2010    source источник


Ответы (2)


вы можете объединить свое представление данных, например...

System.Data.DataView dv = new System.Data.DataView();
System.Data.DataView dv1 = new System.Data.DataView();
dv.Table.Merge(dv1.Table);
person Muhammad Akhtar    schedule 22.06.2010

Вы можете легко комбинировать/объединять два представления (таблицы данных) в одну таблицу данных.

Пример синтаксиса

    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, имеющих во многом схожие схемы. Слияние обычно используется в клиентском приложении для включения последних изменений из источника данных в существующую таблицу данных. Это позволяет клиентскому приложению иметь обновленную таблицу данных с последними данными из источника данных.

Операция слияния учитывает только исходную таблицу и таблицу, которую необходимо объединить. Дочерние таблицы не затрагиваются и не включаются. Если у таблицы есть одна или несколько дочерних таблиц, определенных как часть связи, каждая дочерняя таблица должна быть объединена отдельно.

person AMissico    schedule 22.06.2010