Скопировать строки из одного Datatable в другой DataTable?

Как я могу скопировать определенные строки из DataTable в другой Datable в c #? Будет несколько строк.

foreach (DataRow dr in dataTable1.Rows) { if (/* some condition */) dataTable2.Rows.Add(dr.ItemArray); } 

В приведенном выше примере предполагается, что dataTable1 и dataTable2 имеют одинаковое количество, тип и порядок столбцов.

Копировать заданные строки из таблицы в другую

 // here dttablenew is a new Table and dttableOld is table Which having the data dttableNew = dttableOld.Clone(); foreach (DataRow drtableOld in dttableOld.Rows) { if (/*put some Condition */) { dtTableNew.ImportRow(drtableOld); } } 

Попробуй это

  String matchString="ID0001"//assuming we have to find rows having key=ID0001 DataTable dtTarget = new DataTable(); dtTarget = dtSource.Clone(); DataRow[] rowsToCopy; rowsToCopy = dtSource.Select("key='" + matchString + "'"); foreach (DataRow temp in rowsToCopy) { dtTarget.ImportRow(temp); } 

Проверьте это, вам может понравиться (ранее, пожалуйста, clone table1 to table2):

 table1.AsEnumerable().Take(recodCount).CopyToDataTable(table2,LoadOption.OverwriteChanges); 

Или:

 table1.AsEnumerable().Where ( yourcondition ) .CopyToDataTable(table2,LoadOption.OverwriteChanges); 

Поддерживается в: 4, 3.5 SP1, теперь вы можете просто вызвать метод для объекта.

 DataTable dataTable2 = dataTable1.Copy() 

В результате других сообщений это самое короткое, что я мог получить:

 DataTable destTable = sourceTable.Clone(); sourceTable.AsEnumerable().Where(row => /* condition */ ).ToList().ForEach(row => destTable.ImportRow(row)); 

ниже образца будет самый быстрый способ скопировать одну строку. каждая ячейка копируется на основе имени столбца. в случае, если вам не нужна конкретная ячейка для копирования, попробуйте поймать или добавить if. если вы собираетесь копировать более 1 строки, тогда закодируйте код ниже.

 DataRow dr = dataset1.Tables[0].NewRow(); for (int i = 0; i < dataset1.Tables[1].Columns.Count; i++) { dr[dataset1.Tables[1].Columns[i].ColumnName] = dataset1.Tables[1].Rows[0][i]; } datasetReport.Tables[0].Rows.Add(dr); 

dataset1.Tables [1] .Rows [ 0 ] [i]; измените индекс 0 на указанный указатель строки или вы можете использовать переменную, если вы перейдете в цикл или если она будет логической

  private void CopyDataTable(DataTable table){ // Create an object variable for the copy. DataTable copyDataTable; copyDataTable = table.Copy(); // Insert code to work with the copy. } 
  • Лучший способ удалить повторяющиеся записи из таблицы данных
  • Эффективная группа DataTable
  • Как рассчитать сумму столбца datatable в asp.net?
  • Преобразование JSON в DataTable
  • Проверьте, существует ли значение в dataTable?
  • Является ли datareader быстрее, чем dataset при заполнении данных?
  • Что такое имена столбцов DataTable с точками, что делает их непригодными для управления DataGrid WPF?
  • Как сравнить 2 таблицы данных
  • Преобразование данных в JSON в C #
  • Как передать выбранную строку в commandLink внутри dataTable или ui: repeat?
  • Экспорт данных в файл Excel
  • Давайте будем гением компьютера.