【问题标题】:Cannot read the next data row for the dataset 'Dataset3',Conversion Failed when converting varchar value to datatype int无法读取数据集“Dataset3”的下一个数据行,将 varchar 值转换为数据类型 int 时转换失败
【发布时间】:2012-11-02 15:42:15
【问题描述】:

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

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

当我在第二个参数中选择 2 个值时,第三个参数会被填充,当我执行 SELECT ALL 时,它仍然有效。

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

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

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

【问题讨论】:

  • 更新:我试图删除“数据集 3”,它在参数 2 中采用 3 个或更多值。所以我认为参数 3 没有超过 2 个值。但是另一个问题出现了,为什么当我做 'SELECT ALL' 时它会起作用

标签: ssrs-2008 reporting-services ssrs-tablix


【解决方案1】:

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

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

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

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

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

【讨论】:

  • 我将尝试该报告。该报告已上传,临时修复为参数 2 仅选择 2 个值。我将在完成当前报告后尝试该操作。谢谢杰伦。]
猜你喜欢
  • 1970-01-01
  • 2011-12-01
  • 2012-04-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多