0

MS SQL 2008 で「datetime」タイプのテーブルを作成しました。

フロントエンドで、カレンダー コントロールから日付を読み取る入力ボックスを作成しました。

ユーザーがカレンダー コントロールから日付を選択するとすぐに、入力ボックスに選択した日付が入力されます。

TextBox1.Text = Calendar1.SelectedDate.ToString("dd/MM/yyyy");

次に、以下のような内容を SQL コマンドに追加しています

cmd.Parameters.AddWithValue("@date", TextBox1.Text);
cmd.ExecuteNonQuery();

このコードは、11 日までの日付、つまり 11-04-2013 を選択すると正常に動作し、すぐに 12-04-2013 と任意の月の 12 日を超える日付を選択すると、「式をデータ型 datetime に変換する算術オーバーフロー エラー」という例外が発生します。 "

どこが間違っているのか教えてください。

4

2 に答える 2

0

これは、システムが使用している現在のカルチャが原因である可能性があります。私はSQL Serverが日付を次の形式で期待していると信じていますyyyy-MM-dd.どういうわけかあなたのコードは日と月を交換しています.

試す

cmd.Parameters.AddWithValue("@date", String.Format("{0:yyyy-MM-dd}", TextBox1.Text));

または日付に変換

cmd.Parameters.AddWithValue("@date", Convert.ToDateTime(TextBox1.Text));
于 2013-04-26T10:18:42.387 に答える