传递给 SSRS 报告多个整数值

pass to the SSRS report multiple integer values

我尝试通过 C# 代码将多个整数数组传递给 SSRS 报告

var rsExec = new ReportExecutionServiceSoapClient(binding, new EndpointAddress(config.ReportExecutionUrl));

ParameterValue[] reportParam = new ParameterValue[] {
    new ParameterValue { Name = "pCityId", Value = cityId.ToString() },
    new ParameterValue { Name = "pDepartmentIds", Value = string.Join(",", departmentIds) },
    new ParameterValue { Name = "pBuildingIds", Value = string.Join(",", buidingIds) }
};

await rsExec.SetExecutionParametersAsync(null, null, reportParam, "en-us");

由于ParameterValue的值类型是“字符串”,看来我别无选择,只能将CSV作为参数传递给报告。

然后,在报告中我可以使用整数数据类型,并说我正在传递“多个值”,但是如何从 C# 代码中做到这一点?

PS。与此相关 question

要在选择了 允许多个值 选项的情况下发送参数,您需要为将要使用的每个值发送一个新的 ParameterValue 对象报告,都具有相同的 Name.

在上述情况下,您需要为 departmentIds 集合中的每个值发送一个 ParameterValue,所有值都具有相同的参数名称(“pDepartmentIds”)。

因此,如果要发送 3 个部门 ID,reportParam 数组应包含 3 个 ParameterValue 个对象,所有对象都具有名称“pDepartmentIds”,每个部门 ID 一个。

ParameterValue[] reportParam = new ParameterValue[] {
    new ParameterValue { Name = "pCityId", Value = cityId.ToString() },
    new ParameterValue { Name = "pDepartmentIds", Value = "1" },
    new ParameterValue { Name = "pDepartmentIds", Value = "2" },
    new ParameterValue { Name = "pDepartmentIds", Value = "3" },
    ...
};

buildingIds 做类似的事情。