SSRS报告仅接受美国日期参数

时间:2011-06-17 08:16:12

标签: .net silverlight-4.0 reporting-services

我们有一个SSRS报告,它接受一个日期/时间输入参数。我们发现报告在从Silverlight客户端执行时失败,并出现以下错误:

“为报告参数'CurrentDate'提供的值对其类型无效。”

在进一步调查中,我们发现当传递给报告的日期值大于12时,报告失败。 01/01/2011没关系。 17/06/2011将失败。这告诉我们SSRS框的报告必须是美国格式的日期,即mm / dd / yyyy。

我该如何解决这个问题?到目前为止,我尝试了以下内容:

我已将报告上的语言属性设置为en-GB。这没什么区别。 我在执行报告之前更改了Silverlight代码中的区域设置,例如

System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en-US");
ExecuteReport();
System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en-GB"); 

这有效,但我对此解决方案不满意。在我们的SSRS报告中接受日期似乎是个大黑客。

为什么SSRS期望所有日期参数都采用美国格式?我可以解决这个问题而不必跳过篮球吗?请帮忙!

3 个答案:

答案 0 :(得分:0)

好的,我找到了解决这个问题的方法。以前我通过了DateTime .NET类型。我现在正在传递一个格式化为美国日期样式的字符串值,例如

MeetingDate = MyDateVariable.ToString("MM/dd/yyyy");

这很有效。

答案 1 :(得分:0)

它也可以使用更通用的“破折号”ISO格式: yyyy-MM-dd 。此格式是独立的区域设置。请注意,只使用ISO格式( yyyyMMdd )它不起作用。

问候。

答案 2 :(得分:0)

尝试:

 MyDateVariable.ToString(CultureInfo.InvariantCulture)