Как создать новый DataTable со структурой столбцов из другого DataTable?
как в названии-вопрос:
Как создать новый DataTable со структурой столбцов из другого DataTable?
мне нужен пустой DataTable для использования .Rows.Add()
метод в нем.
код:
DataTable dtFirst = new DataTable();
dtFirst.Columns.Add("column1");
dtFirst.Columns.Add("column2");
dtFirst.Columns.Add("column3");
FillDataTableFirst(); // before I create second DataTable - dtFirst is filled
// here I need dtSecond DataTable with same column structure
// i cant just copy first data table, because it contains data
DataTable dtSecond = ???;
3 ответов
вы ищете DataTable.Clone()
метод (доступен с версии 1.1 framework).
С документация:
Clone создает новый DataTable с той же структурой, что и исходный DataTable, но не копирует никаких данных (новый DataTable не будет содержит каких-либо DataRows). Чтобы скопировать структуру и данные в новый DataTable, используйте Copy.
в вашем примере:
DataTable dtFirst = new DataTable();
dtFirst.Columns.Add("column1");
dtFirst.Columns.Add("column2");
dtFirst.Columns.Add("column3");
FillDataTableFirst(); // before I create second DataTable - dtFirst is filled
DataTable dtSecond = dtFirst.Clone();
просто использовать DataTable.Clone
который клонирует схему, но не данные:
DataTable dtSecond = dtFirst.Clone(); // empty
Теперь вы можете начать добавлять новые строки:
DataRow newRow = dtSecond.Rows.Add();
newRow.SetField("column1", "Value1");
newRow.SetField("column2", "Value2");
newRow.SetField("column3", "Value3");