Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/275.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# Crystal report无法刷新数据_C#_Crystal Reports - Fatal编程技术网

C# Crystal report无法刷新数据

C# Crystal report无法刷新数据,c#,crystal-reports,C#,Crystal Reports,我使用WPF生成Crystal Report viewer,并且能够在报表查看器中加载数据。但是,当我试图创建一个事件来动态刷新报告时,数据无法刷新 基本上,我所做的是创建一个与MSSQL服务器连接的数据集 然后生成Crystal报告文件: 然后尝试将数据导入主窗口中的Crystal report viewer。 代码如下: public partial class MainWindow: Window { DataSet1TableAdapters.BordierSheetTableAd

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

基本上,我所做的是创建一个与MSSQL服务器连接的数据集

然后生成Crystal报告文件:

然后尝试将数据导入主窗口中的Crystal report viewer。 代码如下:

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;

     }
}
当我更新数据库,然后单击窗口中的按钮(触发按钮2_-click(对象发送器,RoutedEventArgs e)功能)时,没有更新任何数据。 有人能帮我吗? 非常感谢。

您是否尝试过:

reportDoc.Refresh() 
加载数据后?

您是否尝试过:

reportDoc.Refresh() 
加载数据后?

尝试以下操作:

reportDoc.Load(reportDataSource);
reportDoc.SetDataSource(empDataSet);
this.crystalReportsViewer1.ViewerCore.ReportSource = reportDoc;
crystalReportsViewer1.RefreshReport();
试试这个:

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

删除数据源并再次添加,例如:

    if ( reportViewer1.LocalReport.DataSources.Count > 0)
        reportViewer1.LocalReport.DataSources.RemoveAt(0);

  reportViewer1.LocalReport.DataSources.Add(new ReportDataSource()
{
            Name = "ds",
            Value = MyDataSource
   });

删除数据源并再次添加,例如:

    if ( reportViewer1.LocalReport.DataSources.Count > 0)
        reportViewer1.LocalReport.DataSources.RemoveAt(0);

  reportViewer1.LocalReport.DataSources.Add(new ReportDataSource()
{
            Name = "ds",
            Value = MyDataSource
   });

试试这个……这个有用

转到Crystal Report Design>File>取消选中“随报告保存数据”


就这样,然后再保存。。它会起作用的。

试试这个..它起作用了

转到Crystal Report Design>File>取消选中“随报告保存数据”


就这样,然后再保存。。它会工作。

刷新报告的代码在哪里?什么不起作用?它在功能按钮2_单击中(对象发送器,RoutedEventArgs e)。刷新方法不起作用。它是抛出错误还是根本不刷新?刷新报表之前是否尝试调用数据\u绑定?调试时,该报表出现“System.Windows.Data错误:2:找不到目标元素的治理FrameworkElement或FrameworkContentElement.”。我认为数据绑定确实是在刷新之前执行的(当主窗口初始化时)。刷新报告的代码在哪里?什么不起作用?它在功能按钮2_单击中(对象发送器,RoutedEventArgs e)。刷新方法不起作用。它是抛出错误还是根本不刷新?刷新报表之前是否尝试调用数据\u绑定?调试时,该报表出现“System.Windows.Data错误:2:找不到目标元素的治理FrameworkElement或FrameworkContentElement.”。我认为数据绑定确实是在刷新之前执行的(当主窗口初始化时)。这不是和我在button2\u Click函数中所做的一样吗?我会在数据绑定操作结束时执行。CR就是这样挑剔的。这和我在button2_Click函数中做的不一样吗?我会在数据绑定操作结束时做这件事。CR就是这样挑剔的。欢迎来到Stack Overflow!你能不能请你的答案解释一下为什么这个代码回答了这个问题?代码唯一的答案是,因为他们不教解决方案。谢谢,你救了我一天!欢迎来到堆栈溢出!你能不能请你的答案解释一下为什么这个代码回答了这个问题?代码唯一的答案是,因为他们不教解决方案。谢谢,你救了我一天!