Подтвердить что ты не робот

Разница между Datareader, DataAdapter, Dataset, DataView

Кто-нибудь может объяснить разницу между DataReader, DataAdapter, Dataset и DataView?

4b9b3361

Ответ 1

Быстро,

  • DataReader - это итератор только для прямой передачи по множеству результатов. Обычно это самый эффективный способ обработки записей, когда вам не нужен произвольный доступ (другими словами, вы не можете вернуться назад). Он "масштабируется" для любого количества записей, по крайней мере, с точки зрения давления памяти, поскольку он загружает только одну запись за раз. Одним из типичных способов получения DataReader является использование метода ExecuteReader DbCommand.

  • DataSet представляет собой набор объектов DataTable. Чаще всего он будет содержать только одну таблицу, но если вы выполняете запрос с несколькими операторами SELECT, DataSet будет содержать таблицу для каждого. Поскольку это представление в памяти, вы должны быть осторожны, сколько данных вы вставляете в DataSet. Вы можете "Заполнить" DataSet с помощью метода Fill DataAdapter.

  • DataAdapter - это своего рода "труба", которая объединяет данные из механизма БД в DataSet. Вот почему у вас будет одна реализация DataAdapter для каждого типа поставщика БД. Один DataSet, многие провайдеры.

  • DataView похож на виртуальное подмножество DataTable.

Ответ 2

DataReader

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

DataSet

DataSet - это несвязанная ориентированная архитектура, которая означает, что во время работы с наборами данных нет необходимости в активных соединениях, и это коллекция DataTables и отношения между таблицами. Он используется для хранения нескольких таблиц с данными. Вы можете выбрать таблицы форм данных, создать представления на основе таблицы и задать дочерние строки над отношениями. Также DataSet предоставляет вам богатые функции, такие как сохранение данных в формате XML и загрузка данных XML.

DataAdapter

DataAdapter будет действовать как мост между DataSet и базой данных. Этот объект dataadapter используется для чтения данных из базы данных и привязки этих данных к набору данных. Dataadapter - это отключенная ориентированная архитектура.

Ответ 3

Я предлагаю вам прочитать документацию MSDN или купить книгу. Вот короткий ответ:

  • Набор данных представляет собой представление в виде базы данных в виде базы данных. Он может содержать один или несколько данных и определять отношения между ними, ключевое поле и т.д.
  • Datatable - это представление в памяти одной таблицы базы данных. Вы можете думать об этом как о столбцах и строках таким же образом.
  • Dataview - это представление на datatable, немного похожее на представление sql. Он позволяет фильтровать и сортировать строки - часто для привязки к элементу управления формой окна.

Ответ 4

DataReader

DataReader похож на набор записей только для прямого доступа. Он извлекает по одной строке за один раз, поэтому стоимость сети меньше, чем у DataSet (Fethces все строки за раз). DataReader является readonly, поэтому мы не можем делать с ними какие-либо транзакции. DataReader будет лучшим выбором, когда нам нужно показать данные пользователю, который не требует транзакций. Поскольку DataReader только вперед, так что мы не можем случайно получать данные..NET Data Providers оптимизирует datareader для обработки огромного количества данных.

DataSet

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

Ответ 5

Разница между DataReader, DataSet и DataAdapter,

DataReader:

  • Ориентированная на соединение архитектура.
  • DataReader используется для чтения данных из базы данных и является ориентированной только на чтение и переадресацию архитектуры при извлечении данных из набора данных.
  • DataReader используется для итерации по набору результатов, который поступает с сервера, и он будет считывать по одной записи за раз, поэтому потребление памяти будет меньше, и оно будет очень быстро получать данные по сравнению с DataSet. Обычно мы будем использовать объект ExecuteReader для привязки данных к DataReader.

DataSet:

  • Отключенная архитектура. Это означает, что нет необходимости в активных подключениях, поскольку мы работаем с наборами данных, и это набор данных и связей между таблицами. Он используется для хранения нескольких таблиц с данными.
  • Вы можете выбирать данные из таблиц и представлений. Также DataSet предоставляет вам богатые функции, такие как сохранение данных в формате XML и загрузка данных XML.

DataAdapter:

  • Отключенная архитектура.
  • DataAdapter будет действовать как мост между DataSet и базой данных.
  • Этот объект DataAdapter используется для чтения данных из базы данных и привязки этих данных к набору данных.

Подробнее Интервью Вопросы по Dot Net здесь