C# 在运行时将Where子句添加到SQL

C# 在运行时将Where子句添加到SQL,c#,reporting-services,C#,Reporting Services,我是SSRS新手,遇到了一些麻烦 我有一个已部署的报告,我可以显示此报告 在使用Microsoft.Reporting.WebForms.ReportViewer的项目中。 那很好,但现在我必须编写一些代码来更改 我的数据集中使用的查询: 我需要得到我的sql,并修改它(放上一些“Where…”,“exists”, 然后将sql放回报告中,然后执行/显示 报告 我熟悉参数,但参数不能满足我的需要。用于数据集SQL语句的表达式只是一个表达式。它可以是您想要的任何内容,包括您构建的字符串。例如,您可

我是SSRS新手,遇到了一些麻烦

我有一个已部署的报告,我可以显示此报告 在使用Microsoft.Reporting.WebForms.ReportViewer的项目中。 那很好,但现在我必须编写一些代码来更改 我的数据集中使用的查询: 我需要得到我的sql,并修改它(放上一些“Where…”,“exists”, 然后将sql放回报告中,然后执行/显示 报告


我熟悉参数,但参数不能满足我的需要。

用于数据集SQL语句的表达式只是一个表达式。它可以是您想要的任何内容,包括您构建的字符串。例如,您可以有一个指示如何构建SQL的参数:

="SELECT ThisField, ThatField "
& "FROM MyTable "
& IIF(Parameters!AddExistsClause.Value, "WHERE SomeId IN (SELECT Id FROM OtherTable) ", "")
您甚至可以添加对自己的DLL的引用,以构建SQL:

="SELECT " & MyDLL.ReportFunctions.GetFields(Parameters!FieldName.Value)
& "FROM " & Parameters!Database.Value & ".dbo." & Parameters!Database.TableName "
& MyDLL.ReportFunctions.TableJoins(Parameters!FieldName.Value)
& MyDLL.ReportFunctions.WhereClause(Parameters!FieldName.Value)

服务器上的共享数据集是否也是这种情况