Вы могли бы серьезно рассмотреть вопрос о Linq-to-Sql или Linq-to-Entities .
Привлекательность этих структур заключается в том, что они предоставляют автоматическиесериализация данных вашей базы данных в объекты, абстрагирование от многих мирских деталей управления соединениями и лучшая поддержка во время компиляции за счет предоставления строго типизированных свойств, которые можно использовать без строковых ключей или порядковых номеров столбцов.
КогдаПри использовании Linq разница между извлечением одной строки и извлечением нескольких строк часто заключается только в добавлении .Single()
или .First()
к вашему запросу.
В любом случае, если вы уже используете или хотите его изучитьиз этих структур вы можете заметить, что объем и сложность кода доступа к данным существенно уменьшаются.
Что касается DataReader против DataSet / DataTable, то правильно, что для выделения и заполнения таблицы данных требуется больше циклов;однако я очень сомневаюсь, что вы заметите разницу, если не создадите слишком большой объем вызовов базы данных.
В случае, если это полезно, вот примеры документации доступа к данным с использованием считывателей данных и наборов данных.