ببینید قضیه اینه که شما datasource ی رو که به گزارشتون میفرستید همونی نیست که موقعه طراحی ازش استفاده کردید.
الاحساب برای راه افتادن کارتون٬ در خط ۲۰۰ بعد از da.Fill(ds) دستور زیر رو اضافه کنید:
ds.WriteXml("c:\\temp.xml",XmlWriteMode.WriteSchem  a);

یک بار برنامه را اجرا کنید٬ بعد از اجرای این خط دستور٬ یک فایل XML در آدرسی که مشخص کرده اید (به عنوان مثال c:\temp.xml) ساخته خواهد شد.

حالا یک گزارش بسازید و این فایل را به عنوان datasource آن استفاده کنید. اگه نمیدونید به چه شکل باید اینکار را انجام بدید٬ بگید تا توضیح بدم.
گزارش جدیدتون رو به جای گزارشی که قبلا طراحی کردید استفاده کنید.
بعد از این کار٬ دستوری که بهتون گفتم رو از کدتون حذف کنید٬ حالا برنامتون با کدی که قبلا داشتید کار میکنه.

موفق باشید.