我的报告有两个数据源:它是嵌入在报告中的“Command”SQL查询,以及数据库中的存储过程 . 它们都有一个相同类型的参数(Crystal Reports中的Number,在存储过程中它被声明为int),Crystal将它们显示为一个参数 .

这两个过程只是将我传递给它们的值作为输出返回 .

使用此输出参数链接数据源,在报告中我只显示命令和存储过程的结果 .

在设计器中一切都很好,但是当我尝试以编程方式(使用C#)调用报表时,大多数情况下一切都很好,但有时(在3-10次启动中)它会因两个错误之一而失败:

Exception verifying database : 
Error in File tmpDAC3 5908_9464_{7E6D1CAA-1968-41E1-A58D-5C5CF204B45D}.rpt:
The specified value type is different to the current value type.

要么

The types of the parameter field and parameter field current values are not compatible.

如果我删除命令和存储过程之间的链接,则没有失败 . 如果我从报告中删除值,则没有失败 . 如果我从存储过程的命令中删除参数,则没有失败 . 如果我添加与参数无关的其他列并使用它们链接数据源,它仍然有时会出现相同的错误,我怀疑这些条件的组合会导致这种奇怪的行为,但是没有找到类似的互联网 .

我使用Crystal Reports 2008设计器和13.0.20.2399运行时

1)我做了一些不被允许的事情吗?
2)有没有其他方法将相同的参数传递给Command和存储过程?