【发布时间】:2012-07-26 19:53:00
【问题描述】:
我正在使用 WPF 生成 Crystal Report 查看器,并且能够在报表查看器中加载数据。但是当我尝试创建一个事件来动态刷新报表时,数据无法刷新。
基本上我所做的是创建一个与 MSSQL Server连接的数据集
然后生成水晶报表文件:
然后尝试将数据导入主窗口中的 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) 函数)时,没有更新任何数据。 那么有人可以帮我解决这个问题吗? 非常感谢。
【问题讨论】:
-
刷新报表的代码在哪里?什么不起作用?
-
在函数button2_Click(object sender, RoutedEventArgs e)中。并且 Refresh 方法不起作用。
-
它是抛出错误还是根本不刷新?您是否尝试过在刷新报告之前调用 Data_Binding?
-
它有“System.Windows.Data 错误:2:找不到目标元素的管理 FrameworkElement 或 FrameworkContentElement。”调试时。而且我认为 Data_Binding 确实在刷新之前执行(当 MainWindow 初始化时)。
标签: c# crystal-reports