C# 拉取记录后的RDLC参数过滤器

C# 拉取记录后的RDLC参数过滤器,c#,sql-server,C#,Sql Server,我试图确定使用reportviewer显示RDLC的客户端报告的最佳实践。设计报表时,可以指定要传递到报表的参数,这些参数可用于筛选记录。但是,使用SQL事件探查器,在运行报告时,似乎在下拉报告的记录后应用了筛选器。我看对了吗 如果是这样的话,为什么不劝阻这种事情呢?是否应该在数据集级别或某个点对记录进行过滤,以便在将记录发送到客户端之前对其进行过滤(当然,出于性能原因)?我一直在互联网上寻找关于这类问题的讨论,我所看到的只是实现参数的多种方法(即,如何实现),但没有讨论一种方法何时优于另一种方

我试图确定使用reportviewer显示RDLC的客户端报告的最佳实践。设计报表时,可以指定要传递到报表的参数,这些参数可用于筛选记录。但是,使用SQL事件探查器,在运行报告时,似乎在下拉报告的记录后应用了筛选器。我看对了吗


如果是这样的话,为什么不劝阻这种事情呢?是否应该在数据集级别或某个点对记录进行过滤,以便在将记录发送到客户端之前对其进行过滤(当然,出于性能原因)?我一直在互联网上寻找关于这类问题的讨论,我所看到的只是实现参数的多种方法(即,如何实现),但没有讨论一种方法何时优于另一种方法以及为什么。这并不是什么新鲜事,所以我希望会有更多关于这方面的内容。如果我遗漏了什么,有人能给我指出一些讨论这个问题的内容吗?

我最近对客户端RDLC进行了实验,得出结论,数据处理效率太低了。正如您所指出的,我遇到了参数未按预期过滤的问题。我在近10年前使用了crystal reports(我认为这是基于它的),我确信没有类似的问题

我使用的最佳方法是在生成报告之前预先准备数据集。我发现总是在运行时传递数据,而不在报表定义中定义数据访问确保它只使用您提供的数据


你是对的,关于使用它的文档/讨论很少,最终我从我的项目中删除了它,并使用其他方法呈现图表/表格等。

不确定你想要什么样的讨论。Reporting services始终在获取数据集后应用筛选器。这是因为同一数据集可以在同一报表中的多个控件中使用不同的筛选/排序/分组。将(可能是第三部分)控件中指定的筛选器/排序/分组转换为可与数据集提供程序一起使用的内容也不是一件容易的任务。不能只在末尾附加WHERE子句。如果你想过滤获取的数据集,你需要向查询中添加参数。好吧,由于潜在的性能问题并不明显,我希望会有更多的建议,以避免在报告本身中使用参数进行过滤。我来自这样一个世界,查询性能通常是使用报告技术时讨论的一部分。然而,在reportviewer的许多示例中,我注意到参数是一个“顺便”类型的项或一个甚至没有提到的项,但事实是,参数化通常是使报告更灵活、更强大的一个重要部分。如果需要事先做,不难说。