Если вы все еще осваиваете ADO.NET, в идеале вам следует обратить внимание на получение результатов ваших запросов в DataReaders, а не в DataTables.Они намного эффективнее.Если бы я использовал ADO.NET и хотел вернуть несколько rcordsets из процедуры, я бы использовал метод NextResult () DataReader для их просмотра.
Как указывает mpenrow, наборы данных являются контейнерами для DataTablesи может содержать несколько таблиц.Одна из причин, по которой вы бы использовали набор данных, - это создание отношений между таблицами данных, если, например, вы хотите отобразить записи Master / Child, например http://www.mikesdotnetting.com/Article/57/Displaying-One-To-Many-Relationships-with-Nested-Repeaters.
Как уже говорили другие, ORM, такие как Linq To Sql, Entity Framework или nHibernate - путь, который в конечном счете пойдет.Все они используют DataReaders для заполнения объектов модели.