Search results
Suggest a FeaturePDF

How to change the data source dynamically using Report Serializer

ReportSerializer allows you to the convert report to a C# object model. So, you can convert your report to Report Designer and modify the data source connection with data sources.

    public void OnInitReportOptions(ReportViewerOptions reportOption)
    {
        FileStream inputStream = new FileStream(@"C:\Users\Resources\sales-order-detail.rdl", FileMode.Open, FileAccess.Read);

        BoldReports.RDL.DOM.ReportSerializer serializer = new BoldReports.RDL.DOM.ReportSerializer();
        BoldReports.RDL.DOM.ReportDefinition reportDefinition = serializer.GetReportDefinition(inputStream);
        string connectionString = "Data Source =<instancename> ; Initial Catalog = <database>; User ID = '<username>'; Password = '<password>'";
        foreach (var source in reportDefinition.DataSources)
        {
             source.ConnectionProperties.ConnectString = connectionString;
        }
         MemoryStream reportStream = new MemoryStream();
         serializer.SaveReportDefinition(reportStream , reportDefinition);
         reportStream.Position = 0;
         reportOption.ReportModel.Stream = reportStream;
    }
Having trouble getting help?
Contact Support
Having trouble getting help?
Contact Support