Dataset
DataSet object can contain multiple rowsets from the same data source as well as from the relationships between them
Dataset is a disconnected architecture
Dataset can persist data.
A DataSet is well suited for data that needs to be retrieved from multiple tables.
Due to overhead DatsSet is slower than DataReader.
Datareader
DataReader provides forward-only and read-only access to data.
Datareader is connected architecture. It has live connection while reading data
Datareader can not persist data.
Speed performance is better in DataReader.