I realize that I am late, and a solution has probably already been implemented, but as a thought for later reports (there are always more). How about having your application generate the dataset, and then just setting the datasource for the report. There is no chance that a user can use the connection or in anyway change the data, as they don't have access. The application gathers the parameters from the user, gets the data needed via stored proc and then passes via ADO.Net to the report.
The only bottlenecks are your data/business layers, but the pluses are your report doesn't have to worry about OBDC, OLE, dynamically changing of these values, changing database names/locations. Your application knows all of this, and gathers the correct information from the correct database and passes it to the report...everyone is happy
HTH