2016-03-02 8 views
0

У меня есть два DataTable с одной и той же схеме:C# DataTable: ImportRow (DataRow) против Rows.Add (DataRow.ItemArray)

DataTable t1 = new DataTable(); 
DataTable t2 = t1.Clone(); 

Если я хочу, чтобы добавить новый DataRow к t1:

DataRow row=t1.NewRow(); 
t1.Rows.Add(t1); 

я не могу использовать t1.ImportRow(row); так как после был создан, row находится в отдельном состоянии, и, следовательно, он будет проигнорирован методом ImportRow (см Microsoft documentation).

Теперь я хочу, чтобы скопировать row в t2: Я знаю, что DataRow объект может содержаться только в одном DataTable, поэтому нужно создать копию, чтобы сделать его можно использовать два метода:

t1.Rows.Add(row.ItemArray); 

или

t1.ImportRow(row); 

Мой вопрос заключается в следующем: t1.Rows.Add(row.ItemArray); и t1.ImportRow(row); эквивалент? Правильно ли все мои предположения?

ответ

0

Я изучил код, и он выглядит как t1.Rows.Add(row.ItemArray); будет немного менее сложным. Во всяком случае, методы не эквивалентны.

+0

Что значит «не эквивалентно технически»? Имеют ли они разные побочные эффекты или результаты? – WoDoSc

+0

@WoDoSc у них на самом деле есть другой код, метод импорта выполняет дополнительные проверки и т. Д. Http://referencesource.microsoft.com/#System.Data/System/Data/DataTable.cs,2954 http://referencesource.microsoft.com /#System.Data/System/Data/DataTable.cs,2539 – xumix

 Смежные вопросы

  • Нет связанных вопросов^_^