The DataReader is very easy to use. To get an instance of the DataReader object, you call the ExecuteReader() of the Command object, rather than using the DataAdapter. The ExecuteReader() returns a new instance of a DataReader object ready to display data starting at the first record returned.
What is DataReader object?
In ADO.NET, a DataReader is a broad category of objects used to sequentially read data from a data source. DataReaders provide a very efficient way to access data, and can be thought of as a Firehose cursor from ASP Classic, except that no server-side cursor is used.
How does DataReader work in C#?
The data reader reads a record at a time, but it reads it from the underlying database driver. The database driver reads data from the database in blocks, typically using a buffer that is 8 kilobytes.