I solve this problem by creating a RunTime parameter as boolean and set its default value to False.
I always set this parameter to true before calling the report in real time.
Then in Code behind of the report, you can use
this.Report.DataSource = null;
this.NeedDataSource += new EventHandler(myReport_NeedDataSource);
Sorry, even this does not work, cannot read run-time parameter except on the myReport_NeedDataSource, it was just an idea.