Basically in C# DataReader is used to retrieve data from database. It is connected architecture. The data is exists as long as the connection with database exists. It can’t persist the data.  It fetches the record from the database. It releases the fetch record after query executes and don’t wait for entire query execution. This is why very fast as compare to Dataset.