在代码中使用ReportViewer控件时,可能会因缓存问题导致报表数据无法更新。解决方法是在代码中手动清空ReportViewer的缓存,示例代码如下:
ReportViewer1.LocalReport.DataSources.Clear();
ReportViewer1.LocalReport.ReleaseSandboxAppDomain();
ReportViewer1.Reset();
另外,如果报表中使用了Subreport控件,还需要手动清空Subreport的缓存,示例代码如下:
foreach (var subreport in ReportViewer1.LocalReport.GetSubreports())
{
subreport.DataSources.Clear();
}