Слияние данных из нескольких наборов данных

вашим первым побуждением возможно было

Класс DataSet Поддерживает пару способов перемещения данных между различными наборами данных. Вашим первым побуждением, возможно, было бы просто получить ссылку DataRow Из одного набора данных, возможно, от операции Select Или при итерации таблицы, а затем добавить ее к таблице в другом наборе данных. К сожалению, такое не допускается, и будет выброшено исключение, когда строка данных добавляется к таблице, она становится частью этой таблицы и не может принадлежать одновременно более чем одной таблице. Только строка, которая была создана методом DataTable .NewRow, Может быть добавлена к этой таблице методом Add Коллекции Row Таблицы. Так как же переместить строку или набор строк, принадлежащих одному набору данных, в другой набор данных? Одним способом является использование метода Merge. Поведение этого метода может стать довольно сложным, поскольку он имеет ряд перегрузок, и оно зависит от того, в каком состоянии Находятся строки в наборе данных, откуда они поступают, и имеются ли соответствующие им строки в наборе данных, куда они вливаются. Для простых случаев, однако, все оказывается довольно прямолинейным. Рассмотрим ситуацию, когда у вас есть таблица Customers в одном наборе данных и таблица Orders в другом. Вы хотите, чтобы обе таблицы оказались в одном наборе данных, чтобы вы могли создать родительско-дочер — нее отношение между ними, определяемое внешним ключом CustomerlD, Существующим в таблице Orders. Для этого вы просто вызываете Merge На наборе данных, содержащем таблицу Customers, передав набор данных Orders. Метод Merge Создаст таблицу Orders в наборе данных Customers и скопирует в нее все строки из набора данных Orders. Вы можете затем конструировать отношение между двумя таблицами, как показано ниже: Если вы хотите добавить строку из таблицы в одном наборе данных в ту же самую таблицу в другом наборе данных с состоянием строки Added, Вы можете передать свойство ItemArray Строки-источника перегрузке метода Add Коллекции Rows Таблицы-приемника. Это перенесет значения ячеек как массив объектов в целевую таблицу, создав в ней новую строку, в которой они будут содержаться. Если вы хотите добавить строку из исходной таблицы в целевую и сохранить ее состояние, вы можете использовать метод ImportRow Класса DataTable. Следующий код показывает оба этих подхода:

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *