In many situations, it's wiser to use DataReader instead of a DataSet. However, DataReader is limited due to its inability to transform data rows into a suitable holder, like DataTable.
The usual workaround for this limitation is to loop through the DataRows from the DataReader and assign them to the DataTable. This can be a pain.
Luckily, .NET 2.0 provides the new DataTable.Load method as a quicker solution. It allows you to pass any object that supports the IDataReader interface (for example, a DataReader). Here's how:
DataTable.Load Method (IDataReader)