2010-11-25 22 views
0

開始日と終了日を選択したレポートがあります。システム引数が範囲外例外

私はオフィスでテストしたところうまくいきました。

ユーザーの所にインストールすると、次のエラーが表示されます。 alt text

なぜですか?

私はデータベースを持ち帰ってオフィスで走ります。

まだ問題なく動作しています。

答えて

3

私が最初に期待したのは、DateTime.Parseの解析問題ではありません。あなたのコード(Form1.Calculat)がコンストラクタを直接呼び出しているので、DateTimeの作成に使用しようとしている値と、問題の原因となっているデータベースの行をログに記録できるはずです。

私たちは本当にあなたの診断作業を行うことはできませんが、値が何であるかを検討したら、自分のコードを調べてどこから来たのかを調べる必要があります。

お客様のクライアントは、開発マシンと異なるデフォルトカルチャを持っていますか?通常は最初のコールポートですが、の手作業での文字列を解析すると、この失敗モードは特に期待できません。

コードを投稿すれば、本当に役に立ちます。

+0

実際には、地域の設定を確認しました。設定は同じです。 – william

+0

@william:そして、あなたは 'DateTime'コンストラクタに渡すものを見つけるための診断を追加しましたか? –

0

TimeToTicksメソッドに値を渡していますか? これらの値は有効なDateTimeを形成していない可能性があります。なぜあなたのオフィスPCで動作するのかは、文化の設定が異なるためです。

たとえば、1つのカルチャでは、「11/25/2010」は、(MM/dd/yyyy)の形式として有効な日付ですが、日付形式が(dd/MM/yyyy )それは有効な日付ではありません。

コントロールパネルからシステムの日付形式を変更するか、それに応じてコードを変更することができます。お役に立てれば。

0

私はそれが他の問題ではなく、文化特有の問題のほとんどであると思います。あるシステムでは、日付形式はMM/DD/YYYYとなり、他のシステムではDD/MM/YYYYなどとなります。したがって、datetimeオブジェクトはカルチャ固有のものを選ぶべきであり、値もそのように渡すべきです。

問題を修正します。