0

SQL サーバーからいくつかのデータをフェッチし、フロント エンド C# ウィンドウ フォームに表示しようとしています。

dtpMcAccExp.Text = DateTime.FromOADate(Convert.ToDouble(reply.Rows[0]["ExpiryDate"])).AddDays(2).ToString("dd/MM/yyyy");

ここで、dtpMcAccExp は DatTimePicker であり、reply は SQL クエリの返信を取得するデータ テーブルです。

私はExpiryDateにOLE日付を取得し、2日前の日付(デルファイシステムが更新するために使用するため)を取得するため、実際の日付を取得するには2日を追加する必要があります。

理解できる限り休んでください。

問題は..システムの日付時刻設定の短い日付が「dd/MM/yyyy」である一部のコンピューターでは正常に動作しますが、短い日付が「M/d/yyyy」である一部のコンピューターではエラーが発生します」文字列は有効な日時として認識されませんでした.."

したがって、解決策は、アプリケーションを実行するすべてのクライアントコンピューターの短い日付を「dd/MM/yyyy」に変更することです。

または、他の解決策、つまりコーディングを変更できます。助けてください。どうもありがとう..

4

1 に答える 1

1

そのためには、単にシステムの現在のカルチャを設定し、実行することができます...

using System.Threading;
using System.Globalization;

Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US", false);

ポイント: また、カルチャを dd/MM/yyy の "en-GB" に設定することもできますが、データベース MM/dd/yyy に保存されるデータは標準の日付形式である可能性があり、問題はありません..

于 2012-06-23T09:20:38.333 に答える