Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 基于新的RDLC文件重新加载和刷新报表查看器_C#_.net_Reporting Services_Reportviewer_Rdlc - Fatal编程技术网

C# 基于新的RDLC文件重新加载和刷新报表查看器

C# 基于新的RDLC文件重新加载和刷新报表查看器,c#,.net,reporting-services,reportviewer,rdlc,C#,.net,Reporting Services,Reportviewer,Rdlc,我使用VS2008编写了一个C#程序,它使用内置的报表查看器并在本地处理报表 查看报告时,我希望用新的rdlc文件替换当前的rdlc文件,并在不关闭包含报告查看器的报告窗体的情况下刷新报告 我已经检查了文件是否正确生成。如果使用报表查看器关闭表单并将其打开,则会显示新的文件信息。我就是不知道如何在不关闭父窗体的情况下重新加载报表查看器 下面是我已经尝试过的。我没有收到任何错误消息。该报告似乎刷新了,但它实际上只是向我展示了我已经看到的内容。未加载新的RDLC文件 private void Btn

我使用VS2008编写了一个C#程序,它使用内置的报表查看器并在本地处理报表

查看报告时,我希望用新的rdlc文件替换当前的rdlc文件,并在不关闭包含报告查看器的报告窗体的情况下刷新报告

我已经检查了文件是否正确生成。如果使用报表查看器关闭表单并将其打开,则会显示新的文件信息。我就是不知道如何在不关闭父窗体的情况下重新加载报表查看器

下面是我已经尝试过的。我没有收到任何错误消息。该报告似乎刷新了,但它实际上只是向我展示了我已经看到的内容。未加载新的RDLC文件

private void BtnRefreshRpt_Click(object sender, EventArgs e)
    {

        try
        {

            GenerateNewRDLC GN = new GenerateNewRDLC();
            GN.generateFile();  /*this part definitely works*/


            SqlConnection conReport = new SqlConnection     (ConfigurationManager.ConnectionStrings["Connection String Info"].ConnectionString);
            SqlCommand cmdReport = new SqlCommand();
            SqlDataReader drReport;
            DataSet dsReport = new AdvEdgeDataSet();

            conReport.Open();

            cmdReport.CommandType = CommandType.Text;
            cmdReport.Connection = conReport;
            cmdReport.CommandText = strRptCriteria;

            drReport = cmdReport.ExecuteReader();

            dsReport.Tables[0].Load(drReport);

            drReport.Close();
            conReport.Close();

            reportViewer1.LocalReport.ReportPath = strRptResource.ToString();


            ReportDataSource rds = new ReportDataSource();
            rds.Name = strRptDataSource;
            rds.Value = dsReport.Tables[0];
            reportViewer1.LocalReport.DataSources.Add(rds);
            reportViewer1.RefreshReport();
            reportViewer1.SetDisplayMode(DisplayMode.PrintLayout);

            //this.reportViewer1.RefreshReport();

        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
        }
    }

在加载新报告文件之前,请尝试调用ReportViewer.Reset()


我目前正是在ReportViewer控件中这样做的,但是,源代码正在工作。如果重置不起作用,我将在周一早上在这里发布我的代码。这是绝对可以做到的。

这非常有效。非常感谢你的帮助。非常感谢。我刚刚添加了:this.ReportViewer.Reset();在“生成新文件”代码之后和sql连接代码之前。这太好了,谢谢。JI对于远程报告也有同样的问题。这个答案仍然适用。谢谢