我使用WPF生成了Crystal Report查看器,并且能够在报表查看器中加载数据。但是,当我尝试创建一个事件以动态刷新报表时,无法刷新数据。

基本上,我所做的是创建与MSSQL Server连接的dataSet

然后生成一个Crystal Report文件:

然后尝试将数据导入到MainWindow中的Crystal报表查看器中。
这是代码:

public partial class MainWindow: Window
{
   DataSet1TableAdapters.BordierSheetTableAdapter TA = new      DataSet1TableAdapters.BordierSheetTableAdapter();
     ReportDocument reportDoc = new ReportDocument();
  public MainWindow()
    {
        InitializeComponent();
        Data_Binding();
    }
  public void button2_Click(object sender, RoutedEventArgs e)
    {
       reportDoc.Refresh();
       crystalReportsViewer1.ViewerCore.RefreshReport();
    }
  void Data_Binding()
     {

         DataSet empDataSet = new DataSet();

         using (SqlConnection conn = new SqlConnection())
         {
             conn.ConnectionString = "Data Source=YATONGHOU\\SQLEXPRESS;Initial Catalog=messagedb;Integrated Security=True";
             conn.Open();


             string sqlStr = "select * from BordierSheet";
             SqlDataAdapter dataAdapter = new SqlDataAdapter(sqlStr,conn);

             dataAdapter.Fill(empDataSet, "BordierSheet");
         }

         string reportDataSource = @"C:\\Users\\yatong\\Work\\LogAnalytics\\BordierSheetReport\\BordierSheetReport\\CrystalReport1.rpt";

         reportDoc.Load(reportDataSource);
         reportDoc.SetDataSource(empDataSet);

         this.crystalReportsViewer1.ViewerCore.ReportSource = reportDoc;

     }
}


当我更新数据库,然后单击窗口中的按钮(触发button2_Click(object sender,RoutedEventArgs e)函数)时,没有任何数据已更新。
那么有人可以帮我吗?
非常感谢你。

最佳答案

尝试这个:

reportDoc.Load(reportDataSource);
reportDoc.SetDataSource(empDataSet);
this.crystalReportsViewer1.ViewerCore.ReportSource = reportDoc;
crystalReportsViewer1.RefreshReport();

10-02 06:17
查看更多