какой объект данных я должен использовать - PullRequest
0 голосов
/ 15 августа 2010

У меня есть запрос, который возвращает только одну строку (всегда), и я хочу преобразовать эту строку в объект класса (скажем, оби)

У меня такое ощущение, что использование таблицы данных для такого рода запросов слишком но я не знаю, какой другой объект данных использовать

считыватель данных?

есть ли способ выполнить команду sql для строки данных?

Ответы [ 3 ]

2 голосов
/ 15 августа 2010

DataReader - лучший выбор здесь - DataAdapters и DataSets могут быть излишними для одной строки, хотя, несмотря на это, если производительность не критична, то простота - это не плохо Вам не нужно переходить из DataReader -> DataRow -> вашего объекта, просто прочитайте значения из DataReader и все готово.

0 голосов
/ 29 августа 2010

Вы могли бы серьезно рассмотреть вопрос о Linq-to-Sql или Linq-to-Entities .

Привлекательность этих структур заключается в том, что они предоставляют автоматическиесериализация данных вашей базы данных в объекты, абстрагирование от многих мирских деталей управления соединениями и лучшая поддержка во время компиляции за счет предоставления строго типизированных свойств, которые можно использовать без строковых ключей или порядковых номеров столбцов.

КогдаПри использовании Linq разница между извлечением одной строки и извлечением нескольких строк часто заключается только в добавлении .Single() или .First() к вашему запросу.

В любом случае, если вы уже используете или хотите его изучитьиз этих структур вы можете заметить, что объем и сложность кода доступа к данным существенно уменьшаются.

Что касается DataReader против DataSet / DataTable, то правильно, что для выделения и заполнения таблицы данных требуется больше циклов;однако я очень сомневаюсь, что вы заметите разницу, если не создадите слишком большой объем вызовов базы данных.

В случае, если это полезно, вот примеры документации доступа к данным с использованием считывателей данных и наборов данных.

0 голосов
/ 15 августа 2010

DataReader позволяет вам запрашивать отдельные поля.Если вы хотите, чтобы строка представляла собой один объект, я считаю, что семейство объектов DataTable / DataRowView на самом деле является идеальным вариантом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...