Difference Between DataReader and DataAdapter and DataSet:
Datareader: Datareader will be the best choice where we need to show the data to the user which requires no manipulation.
DataAdapter: DataAdapter read data from the database and is used to bind the data to the DataSet because DataAdapter working as a bridge between DataSet and the DataBase.
DataSet: DataSet is best suited where there is possibility of manipulation on the data.
In this article you will learn about the Connected And Disconnected Environment in ADO.NET.