Учитывая существующий DataReader
(в данном случае OleDbDataReader), я могу построить DataTable
с помощью DataTable.Load
:DataReader на пустой DataTable
// C#
OleDbDataReader dr = SomeMethodThatReturnsADataReader();
var dt = new DataTable();
dt.Load(dr);
' VB.NET
Dim dr As OleDbDataReader = SomeMethodThatReturnsADataReader();
Dim dt = New DataTable()
dt.Load(dr);
Однако это загружает данные из DataReader
в DataTable
,
Я хочу создать DataTable
, который соответствует структуре существующего DataReader
, но не содержит данных.
Как я могу это сделать?
Редактировать
На дальнейших размышлений, я понимаю, нет встроенного метода, чтобы сделать это. Однако может ли проблема разбиться на две части?
- Извлечение информации схемы из
DataReader
- нагрузки этой схемы информации в новую
DataTable
Вам может понадобиться объяснить далее - те DataReaders просто объявлены; мы не можем создавать DataReaders, они всегда созданы для нас. Итак, откуда вы пришли? – Plutonix
@Plutonix «DataReader» фактически создан в другом месте; Я изменил код, чтобы уточнить это. –
Я бы создал еще один метод для возврата DataTable с загруженной таблицей def - DataReader на самом деле не предназначен для этого. Учитывая то, как они могут заблокировать соединение, может быть неплохо, чтобы читатель просто лежал вокруг. – Plutonix