Вы можете использовать метод «push» для установки данных с помощью DataSet - это даст вам преимущество в установке источника данных для основного отчета и всех вложенных отчетов в одном обращении к базе данных.Однако существуют некоторые ограничения, например, вы не сможете использовать подотчеты в разделе сведений.Я не уверен, что вы можете использовать datareader и список массивов в качестве источников данных.Даже если вы можете, я не вижу никаких преимуществ.Использование datareader означает, что вы будете держать ваше соединение с базой данных открытым, пока отображается отчет (первый проход).Это может занять некоторое время и не является необходимым.Список массивов (если можно использовать) позволит вам установить данные для одной таблицы - это плоская структура - никаких связей.В большинстве случаев вы, вероятно, все равно загрузите список массивов из базы данных, поэтому не имеет смысла загружать данные в массив и использовать массив для установки одной таблицы, если вы можете использовать набор данных.
Почему вы игнорируете обычный метод "pull"?Будет проще.