.net: преобразование общего списка в DataReader?

Привет, у меня есть заполненный общий список в форме winform, и теперь я хочу отправить его данные в таблицу SQL-сервера в виде массовой копии. Когда я читаю класс SqlBulkCopy, ему в качестве источника требуется средство чтения данных.

Теперь, как мне преобразовать его в DataReader?

Спасибо


person odiseh    schedule 01.02.2011    source источник
comment
См. Этот ответ для преобразования общего списка в DataTable: stackoverflow.com/ questions / 564366 / generic-list-to-datatable   -  person Andy Rose    schedule 01.02.2011


Ответы (2)


Вы можете преобразовать его в DataTable и отправить в SqlBulkCopy. Это было бы намного проще и без потери производительности, потому что все данные уже находятся в памяти.

Аналогичный вопрос по SO.

person gor    schedule 01.02.2011

Если объем данных достаточно нормален, чтобы существовать как List<T>, вы можете просто создать DataTable и таким образом протолкнуть данные. Мне не нравится DataTable, но он отлично справляется со своей задачей. Альтернативой может быть создание собственной IDataReader реализации как это, но каждый раз перебирает элементы в списке. Я не уверен, что это того стоит.

person Marc Gravell    schedule 01.02.2011