Edit - another suggestion
Have the datasource in Visual Studio point to the development database. Have the deployed datasource point to the production database. Set the datasource to not overwrite existing datasources on deployment. This means all development in VS will be against the development database but when you deploy the report, it will use the previously deployed datasource that points to the production database.
Original suggestion
We have a similar issue - we have a suite of reports that need to be able to run on any of our databases for historical financial years so the user needs to be able to select which database to run the report for.
The strength of Reporting Services is that everything is an expression and the SQL for the data set is no different. What we do is modify the SQL to use the database as selected by the user.
It is set up as follows:
On Sql Server in a common database we create a table called DatabaseLookup that has the fields DatabaseLabel (the display name) and DatabaseName (the actual name of the database) plus an INT SortOrder so we can order the databases sequentially backwards as we create a new one.
In Reporting Services we create a datasource that points to our common database and a new dataset called Databases that uses that datasource:
SELECT DatabaseLabel, DatabaseName
FROM DatabaseLookup
ORDER BY SortOrder
A Parameter is set up called Database which uses the Databases dataset with Value field = DatabaseName and Label field = DatabaseLabel and the non-queried default to be our current database.
Now we modify the SQL for our main table of the report into an expression. Let's say our SQL looks like this:
SELECT SomeField, OtherField
FROM SomeTable
We turn that into a calculated expression, like so:
="SELECT SomeField, OtherField "
&"FROM " & Parameters!Database.Value & ".dbo.SomeTable "
The label of the database selected is also included in the header in a small font so people know what data they are looking at.
When a new financial year comes along, we simply add a new row to our DatabaseLookup table and every report in our system can now use that new database.