Ciao,
puoi lavorare con la reflection, per genrare la classe "Adapter" corretta in base a quello che vuoi:
DataSet ds = new DataSet();
IDataAdapter adapter = (IDataAdapter)Activator.CreateInstance("...nome corretto...");
adapter.Fill(ds);
e per determinare il nome corretto lavori con un case sulla querystring, oppure costruendo una stringa corretta in base al nome.
Il nome corretto è proprio il nome della classe che scriveresti a livello di editor di codice, compresa di namespace...
dopo esserti caricato l'adapter e riempito un DataTable/DataSet da visualizzare, al report puoi passare l'oggetto riempito con un codice di questo tipo:
ReportDocument report = new ReportDocument();
report.Load(@"...\report.rpt", OpenReportMethod.OpenReportByTempCopy);
report.SetDataSource(...datatable riempito...);
Ciao.
Matteo Raumer
[MVP Visual C#]
http://blogs.dotnethell.it/freeteo