•The DataSet class in ADO.Net operates in an entirely disconnected nature.•DataReader is a connection oriented service.
DataSet is a collection of in-memory tables.DataReader is used to retrieve read-only (cannot update/manipulate data back to datasource) and forward-only (cannot read backward/random) data from a database.
DataSet releases the data after loading all the data in memory.DataReader fetches the records from database and stores in the network buffer and gives whenever requests.
DataSet fetches all the rows at a time i.e. it fetches all data from the datasource at a time to its memory area.DataReader is like a forward only recordset. It fetches one row at a time so very less network cost compare to DataSet.
•There is more system overheads in DataSet as it fetches all the data from the datasource at a time in memory.•As one row at a time is stored in memory in DataReader it increases application performance and reduces system overheads.
•In DataSet we can move back and forth and fetch records randomly as per requirement.•As DataReader is forward only, we can’t fetch random records as we can’t move back and forth.
DataSet can fetch data from multiple tables.DataReader fetches data from a single table.
•Relationship between multiple tables can be maintained in DataSet.•As DataReader can have data from a single table so no relationship can be maintained.
•Transactions are possible in DataSet•DataReader is read only so no transaction like insert, update and delete is possible
DataSet is a disconnected architecture that automatically opens the connection, fetches the data into memory and closes the connection when done.DataReader is a connected architecture: The data is available as long as the connection with database exists.
DataSet is a bulky object that requires lot of memory space as compared to DataReader .DataReader is a lightweight object that requires less memory space as compared to DataSet.
•DataSet can be serialized and represented in XML so easily passed around to other tiers.•DataReader can’t be serialized.
•DataSet automatically handles the connection.DataReader requires connection to be open and close manually in code.
DataSet is best suited where there is possibility of manipulation on the data.DataReader will be the best choice where we need to show the data to the user which requires no manipulation.
•Since DataSet can be serialized it, can be used in wcf services and web service that will return retrieved data.DataReader can’t be serialized so can’t be used in wcf services and web services.
•When you need to navigate through the data multiple times then DataSet is better choice e.g.  we can fill data in multiple controls•But DataReader can only be read once so it can be bound to a single control and requires data to be retrieved for each control.

Download PowerPoint File (Theory File)

No responses yet

Leave a Reply

Your email address will not be published. Required fields are marked *