我在C#中有一个控制台应用程序,可以处理水晶报告。我正在使用以下方式加载报告(仅一次)
static ReportDocument cryReportDocument = new ReportDocument();
static void Main(string[] args)
{
cryReportDocument.Load("reportLocation");
....
//I am exporting about 20.000 .pdf files
while(true)
{
....
//destianationPath is file location
ExportToPdf(destinationPath)
}
}
然后我使用以下方法将此报告导出为pdf文件:
//Export pdf file
static void ExportToPdf(string destianationPath)
{
cryReportDocument.SetDatabaseLogon("userName", "password", "Database", "");
//Adding paremeters to report
cryReportDocument.SetParameterValue(.., ..);
//This line consumes a lot of time now
cryReportDocument.ExportToDisk(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat, destianationPath);
}
我之前(大约两三天前)使用过这个程序来导出大约15.000 .pdf文件并且效果非常好。在大约不到一秒的时间内导出一个.pdf文件。我在代码中没有更改任何内容,但该行大约需要5秒才能导出一个.pdf文件。什么可以导致这个?电脑是一样的,我什么都没改变。但它不能正常工作。有人可以帮忙吗?
答案 0 :(得分:1)
数据库可能很慢吗? (按照阿迪尔的要求)
其他信息(希望你不介意):
ExportToDisk方法使crystal实际执行数据库查询。在这种情况下,最好的测试是直接执行查询以查看需要多长时间。根据需要进行调整。