Your statement is not correct:
DataReader is the Forward-only Read-only recordset where the data will be read one by one in forward only manner. DataReader can't go and read the backward records.
Why it is faster than any other ADO.Net objects:
We can use DataReader or DataSet to read the records from the Database. So If we use DataReader, it reads only one record as a time while the DataSet gets all the record at once and dumps in the memory. So to get all the records, it take time rather than just read a single record and not keeping that record in memory.
That is the reason, if you have the huge amount of the data in the database and want to read few records, DataReader will give better performance than dataset.
Hope it will be helpful to you.
Pawan Awasthi(DNS MVM)
+91 8123489140 (whatsApp), +60 14365 1476(Malaysia)