Каков самый быстрый способ переноса нескольких тысяч строк данных из одного DataTable в другой? Было бы здорово увидеть несколько примеров кода.
Обновлено: мне нужно объяснить немного больше. Есть условие фильтрации для копирования строк. Таким образом, простой Copy () работать не будет.
Только определенные строки. Пост тоже обновил.
Можете ли вы фильтровать с помощью DataView.Filter, а затем DataTable.Copy?
Сработало бы. но условия фильтрации не так просты. Это могло измениться в зависимости от некоторых значений.
Вы на 100% уверены, что будет проще уточнить исходный SQL-запрос?
SQL-запрос находится вне моего контроля :(. Это самая большая проблема, с которой я столкнулся.
Структура источника DataTable жалка. Мне нужно изменить это, чтобы сделать его более презентабельным для пользовательского интерфейса.
Это появилось в моем поиске google как седьмой результат !!! Ужас, StackOverFlow ... Работает !!!





Что не так с DataTable.Copy?
Мне нужно объяснить еще немного. Есть условие фильтрации для копирования строк. Таким образом, простой Copy () работать не будет.
Вы не можете скопировать всю таблицу, вам нужно скопировать одну строку. Из http://support.microsoft.com/kb/308909 (пример кода по ссылке)
"Как копировать строки данных между таблицами данных Перед использованием метода ImportRow необходимо убедиться, что целевая таблица имеет такую же структуру, что и исходная таблица. В этом примере используется метод Clone класса DataTable для копирования структуры DataTable, включая все схемы, связи и ограничения DataTable.
В этом примере используется таблица Products, включенная в базу данных Microsoft SQL Server Northwind. Первые пять строк копируются из таблицы Products в другую таблицу, которая создается в памяти ».
Это не совсем клон. Я предполагаю, что ручная итерация по таблице данных - единственный вариант.
Копирование строк в таблицу бросает мне вызов. Я видел, как люди пробовали это раньше, и в каждом отдельном случае они действительно хотели System.Data.DataView. Вам действительно следует проверить, будет ли свойство RowFilter делать то, что вам нужно.
Вам нужно скопировать только определенные строки или весь DataTable?