In general, the only times that a
DataSet must be used in preference to a
DataReader are:
When the data will be remoted (that is, sent as a disconnected package) to the client or a remote instance of the application or a component–for example, when using a web service that returns a
DataSet .
When you need to retrieve and store more than one set of rows, and, optionally, the relationships between them.
A
DataReader can be used as the source for data binding controls if required.