0

我正在运行一个包含 3 个参数的报告。第二个参数根据在第一个参数中选择的值填充,第三个参数根据第二个参数填充。

我可以在第二个和第三个参数中选择多个值。

当我在第二个参数中选择 2 个值时,将填充第三个值,当我执行 SELECT ALL 时,它仍然可以工作。

但是当我选择 3 个或更多值时,它会引发错误。

本地报告期间出现错误
无法读取数据集“Dataset3”的下一个数据行,
将 varchar 值“430.2”转换为数据类型 int 时转换失败

你能告诉我我的方法应该是什么。

4

1 回答 1

3

你能告诉我我的方法应该是什么。

问题在于数据和数据集查询。您应该在数据集 2 后面运行查询,并确定开始给您带来麻烦的 3 个值是什么。检查这些值是否实际上是正确的数据类型(参数的类型)。很可能其中一个值是“430.2”,而参数的类型是 INT。

如果这不起作用,那么您应该在数据集 3 后面执行查询,以便将WHERE myval IN (@Param3)位中的参数替换为您使用先前查询检索到的值的逗号分隔列表。

如果两者都没有出现,那么下一步可能是运行 SQL Profiler 并获取 SSRS 发送到服务器的实际查询。挑选出这些查询,并尝试手动运行它们以调试问题。

您可能要检查的另一件事是数据集的字段映射设置是否与数据集查询实际返回的类型匹配。

于 2012-11-02T07:42:15.277 回答