Difference between datareader and dataset?

Answer Posted / sudheendra

DataReader
Datareader is like a forward only recordset. It fetches one
row at a time so very less Network Cost compare to
DataSet(Fetches all the rows at a time). DataReader is
readonly so we cannot do any transaction on them. DataReader
will be the best choice where we need to show the data to
the user which requires no transaction ie reports. Due to
DataReader is forward only we cannot fetch the data
randomly. .NET Dataproviders optimizes the datareaders to
handle the huge amount of data.

DataSet
DataSet is always a bulky object that requires lot of memory
space compare to DataReader. We can say the dataset as a
small database coz it stores the schema and data in the
application memory area. DataSet fetches all data from the
datasource at a time to its memory area. So we can traverse
through the object to get required data like qureying database.

The dataset maintains the relationships among the datatables
inside
it. We can manipulate the realational data as XML using
dataset.We can do transactions (insert/update/delete) on
them and finally the modifications can be updated to the
actual database. This provides impressive flexibility to the
application but with the cost of memory space. DataSet
maintains the original data and the modified data seperately
which requires more memory space. If the amount of data in
the dataset is huge
then it will reduce the applications performance dramatically.

The following points will improve the performane of a dataset...

1. Don't use the commandbuilder to generate the sql statements.
Though it reduces the development time the query generated

by the command builder will not be always as required. For
example
To update the details of an author table the command

Is This Answer Correct ?    3 Yes 3 No



Post New Answer       View All Answers


Please Help Members By Posting Answers For Below Questions

What does ado stand for?

533


Why is ADO.NET serialization slower than ADO ?

575


Explain how to find the given query is optimised one or not?

523


What are the namespaces used in ado.net for data access?

492


What is ado.net full form?

562






What does executereader return?

538


What is ado net stands for?

530


List the 4 common ado.net namespaces?

705


What is method to get XML and schema from Dataset? getXML() and get Schema ()

547


What are the main differences between classic ado and ado.net?

534


What is the meaning of object pooling?

608


What are the classes in System.Data.Common Namespace?

719


How we can provide data to ado.net?

553


Can datareader hold data from multiple tables?

683


How to enable and disable connection pooling?

516