ОК, но вы должны понимать, что эти элементы набора данных, которые вы видите в обозревателе решений, представляют типы классов (вещи, которые вы можете создать), а не экземпляры объектов (вещи, которые вы создали), поэтому вы можете использовать только экземпляры объектов в своем коде
В форме, в которой создан ваш набор данных, с кодом, например
sbmsDataSetAll myDataset = new sbmsDatasetAll();
, находится экземпляр набора данных. Только в коде этой формы вы можете связать его с отчетом, если вы не передали набор данных в другое место с помощью параметров метода.
Вы действительно должны передать одну из таблиц в наборе данных как источник данных Crystal Report, если только вы не сказали Crystal, какое имя таблицы использовать (где-то в режиме разработки - я не вижу его в вашем коде). Когда вы работаете со строго типизированными наборами данных, подобными этим, вам не нужно использовать коллекцию .Tables. Каждая таблица в наборе имеет именованное свойство для таблицы:
cryRpt.SetDataSource(sbmsDataSetAll.recent_slide_dataset) ;
Вам также не нужно вызывать свойство DataSet таблицы, поскольку оно просто указывает на набор данных, в котором находится таблица, в которой вы уже знать, когда вы выбрали таблицу:
cryRpt.SetDataSource(sbmsDataSetAll) ;
В качестве еще одной небольшой критики, в c# мы используем PascalCase имен объектов, свойств и методов, поэтому ваши сущности набора данных должны быть действительно названы как:
cryRpt.SetDataSource(SbmsDataSetAll.RecentSlides) ;