Вставить строку из одной таблицы данных в середину другой таблицы данных

#c# #datatable #insert #row

#c# #таблица данных #вставить #строка

Вопрос:

Итак, у меня есть две таблицы данных. Я могу легко ДОБАВЛЯТЬ строки из одной в другую с помощью этого: table1.Rows.Add(table2.Rows[0].ItemArray);

Но я хочу вставить строку в определенное место, а не в нижней части таблицы1. Пытался использовать table1.Rows.InsertAt , но проблема в том, что вам нужен класс DataRow (который я не могу понять, как получить), а также вы не можете этого сделать table.Rows.InsertAt(table1.Rows[0], idex); , потому что он говорит, что строка принадлежит другой таблице. (table2 является исходным, table1 — целевой)

Ответ №1:

Вы можете клонировать элементы исходной строки, а затем создать DataRow с их помощью:

 var sourceItems = (object[])(table2.Rows[0].ItemArray.Clone());

DataRow targetRow = table1.NewRow();
targetRow.ItemArray = sourceItems; 
table1.Rows.InsertAt(targetRow, index);
  

(обратите внимание, что в вашем вопросе неясно, какая таблица данных является источником, а какая — целью, я предположил table2 , что это источник и table1 цель)