Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/333.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# 我正试图找出一种方法来简化将数据从access数据库导入.Net应用程序的过程_C#_.net_Crystal Reports - Fatal编程技术网

C# 我正试图找出一种方法来简化将数据从access数据库导入.Net应用程序的过程

C# 我正试图找出一种方法来简化将数据从access数据库导入.Net应用程序的过程,c#,.net,crystal-reports,C#,.net,Crystal Reports,我正在编写一个相当轻量级的.Net应用程序,它查询Access数据库并根据结果集生成Crystal报表 数据集填充方法有点慢,但易于管理 问题是当我加载crystal报告时。如果传递给Crystal的数据集是相当大的,那么加载需要花费很长时间,用户会放弃 这是设置报表数据集的代码: report.SetDataSource(largeDataSet); largeDataSet有两个表。我已将它们配对到绝对重要的专栏 最终发生的是 reportViewer.Show(); 命令激发,但Rep

我正在编写一个相当轻量级的.Net应用程序,它查询Access数据库并根据结果集生成Crystal报表

数据集填充方法有点慢,但易于管理

问题是当我加载crystal报告时。如果传递给Crystal的数据集是相当大的,那么加载需要花费很长时间,用户会放弃

这是设置报表数据集的代码:

report.SetDataSource(largeDataSet);
largeDataSet有两个表。我已将它们配对到绝对重要的专栏

最终发生的是

reportViewer.Show();
命令激发,但ReportViewer实际显示报告需要几分钟

我不知所措


我感谢您的帮助和反馈。

我建议您尝试一款性能分析器应用程序。 ANTS性能分析器是一个很好的工具


最后,我使用DataView进行第一次排序(有效地设置了非聚集索引),然后仅从每个表中筛选出所需的行,然后设置一个新的数据集,并使用DataView.ToTable()方法填充新的数据集

这为Crystal Reports设置了成本较低的事务。以前的6-10分钟报告现在加载不到一分钟

private DataSet FilterData()
    {
        DataSet filteredData = new DataSet("FilteredData");
        DataView viewAccount = new DataView(global65DataSet.SET_ACCOUNT_TABLE);
        viewAccount.Sort = "Number ASC";
        viewAccount.RowFilter = " Number >= '" + beginningAcct+"' AND Number <= '" + endAcct + "' ";

        DataView viewTrans = new DataView(global65DataSet.SET_TRANSACTION_TABLE);
        viewTrans.Sort = "Transaction_ID ASC, DateTime ASC";
        viewTrans.RowFilter = " DateTime >= '" + beginningDate.ToShortDateString() + "' AND DateTime <= '" +
                              endDate.ToShortDateString() + "'";

        filteredData.Tables.Add(viewAccount.ToTable());
        filteredData.Tables.Add(viewTrans.ToTable());
        filteredData.Tables[0].TableName = "SET_ACCOUNT_TABLE";
        filteredData.Tables[1].TableName = "SET_TRANSACTION_TABLE";

        return filteredData;
    }
私有数据集过滤器数据()
{
数据集Filteredata=新数据集(“Filteredata”);
DataView viewAccount=新的DataView(global65DataSet.SET_ACCOUNT_表);
viewcount.Sort=“编号ASC”;

viewcount.RowFilter=“Number>=”“+beginingacct+””和Number=”“+beginningDate.ToShortDateString()+””和DateTime有许多可能影响性能的因素。您可能需要在问题中更具体一些。谢谢,这个建议帮助我缩小了问题的范围。