none
Какая разница между DataSet и DataReader? RRS feed

  • Общие обсуждения

  • DataReader

    ADO.NET DataReader предназначен для получения потока данных, доступного только для чтения в прямом направлении. Результаты возвращаются по мере выполнения запроса, они хранятся в сетевом буфере на клиенте, пока Вы не запросите их методом Read() объекта DataReader. Использование DataReader может увеличить производительность приложения, путем получения данных по мере их поступления, не дожидаясь полного завершения запроса, и т.к. возвращается только по одной записи, это позволяет сократить издержки памяти, необходимой для сохранения всех результатов запроса.

    Объект чтения данных (DataReader) можно получить из объекта команды (Command ) с помощью вызова метода ExecuteReader().

    Например:

    SqlDataReader myReader = myCommand.ExecuteReader();
    

    Метод Read() объекта DataReader используется для получения очередной записи из результата запроса. Значение каждого столбца записи можно получить при помощи индексатора объекта DataReader, передав ему имя или номер требуемого столбца. Однако для большей производительности DataReader предоставляет ряд методов, которые позволяют получить значение столбца в родном типе данных(GetDateTime, GetDouble, GetGuid, GetInt32 и т. д.)

     

    DataSet

    DataSet является представлением реляционных данных, находящимся в памяти, что обеспечивает согласованную реляционную модель, независимо от источника данных. Его можно использовать с несколькими источниками данных. DataSet представляет полный набор данных, включающий связанные таблицы, отношения между таблицами, ограничения столбцов, первичные ключи и т.д. К этим данным можно применять фильтры, отправлять запросы, сохранять или загружать в формате XML.

    DataAdapter выступает в качестве моста между DataSet и источником данных для получения или обновления данных. Он заполняет DataSet с помощью объектов DataTable посредством вызова метода Fill(), и обновляет данные в базе данных в соответствии с изменениями, сделанными в DataSet, посредством вызова метода Update().


    3 ноября 2010 г. 12:35