2011-06-17 56 views
1

我們有一個SSRS報告接受一個日期/時間輸入參數。我們發現報告在從我們的Silverlight客戶端執行時失敗,並顯示以下錯誤:SSRS報告只接受美國日期參數

「爲報告參數'CurrentDate'提供的值對其類型無效。」

在進一步調查中,我們發現,當日期值傳遞給報告的日期數大於12時,報告失敗。 01/01/2011是好的。 17/06/2011將失敗。這告訴我們,SSRS框的報告必須以美國格式的日期,即mm/dd/yyyy。

我該如何解決這個問題?到目前爲止,我已經嘗試了以下內容:

我已經將報告中的Language屬性設置爲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期望所有的日期參數都是美式格式?我能解決這個問題嗎?請幫忙!

回答

0

好的我找到了一種方法來解決這個問題。以前我正在傳遞一個DateTime .NET類型。我現在傳遞格式爲美國日期樣式的字符串值,例如

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

This Works。

0

它也可以使用更通用的「破折號分隔」ISO格式:yyyy-MM-dd。這種格式是獨立於區域設置的。請注意,僅使用ISO格式(yyyyMMdd)它不起作用。

問候。