#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
цель)