2012-05-08 4 views
0

Сейчас я используюбыстрый способ чтения данных IDbConnection.Command

OleDbDataAdapter objDataReader = new OleDbDataAdapter(); 
objDataReader.SelectCommand = myCommand; 
objDataReader.Fill(myDataTable); 

Но я чувствую, что DataTable объект представляет собой массивный объект раздутой, я хотел бы знать, если есть способ, я могу сделать мой собственный объект для отправки на считыватель данных или использовать более легкий?

+0

Не совсем ответ, но может быть стоит отметить, что методы на самом деле не отправляются вместе с каждым объектом. – carlpett

+1

Есть только одна причина, по которой DataTable когда-либо раздувается: набирая ее тысячами результатов запроса. Это не проблема с DT, это проблема с запросом. –

+0

Хорошо, что DT имеет объект для идентификации каждого столбца, который может иметь много свойств, таких как автоинкремент и данные, даже может иметь первичные ключи и т. Д., Он больше, чем просто простой объект со свойствами из таблицы. – gosukiwi

ответ

2

Но я чувствую, что DataTable объект представляет собой массивный объект раздутого, я хотел бы знать, если есть способ, я могу сделать свой собственный объект для отправки данных читателя, или использовать более легкие один?

Вы называете Load СПОСОБА DataTable «s, чтобы загрузить данные в него с помощью IDataReader. Вы говорили об этом наоборот, что неверно.

Что касается DataReader, это на самом деле очень быстро. Если вам не нравится с помощью DataTable, вы можете посмотреть на другие варианты, такие как Entity Framework или просто увлажняющим свои собственные пользовательские бизнес-объекты, перебирая в DataReder, как так:

while (reader.Read()) 
{ 
    //Hydrate your objects here 
} 
+0

Спасибо! Это то, что мне нужно. – gosukiwi

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