C# Crystal report无法刷新数据
我使用WPF生成Crystal Report viewer,并且能够在报表查看器中加载数据。但是,当我试图创建一个事件来动态刷新报告时,数据无法刷新 基本上,我所做的是创建一个与MSSQL服务器连接的数据集 然后生成Crystal报告文件: 然后尝试将数据导入主窗口中的Crystal report viewer。 代码如下: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
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!你能不能请你的答案解释一下为什么这个代码回答了这个问题?代码唯一的答案是,因为他们不教解决方案。谢谢,你救了我一天!欢迎来到堆栈溢出!你能不能请你的答案解释一下为什么这个代码回答了这个问题?代码唯一的答案是,因为他们不教解决方案。谢谢,你救了我一天!