1

<asp:TextBox>から日付を取得して、MSSQL データベースの「DATE」型フィールドに格納するのに本当に問題があります。現在、私のコードはテキストボックスの値を無視し、現在の日付を保存しています。誰かが助けてくれることを願っています!

これが私のコードです。次のように日付を収集します。

DateTime end = DateTime.Now;
end = Convert.ToDateTime(txtEndDate.Text);

次に、この行をクエリと組み合わせて使用​​して、パラメーターをバインドします。

AppendNews.Parameters.Add(new SqlParameter("@show_to", end));

興味深いことに、ローカルホストでプログラムを実行すると、すべて正常に動作します!

よろしく

アダム

4

3 に答える 3

1

使用してみてください:

bool isDateValid = DateTime.TryParseExact(
txtEndDate.Text,"dd/MM/yyyy",
System.Globalization.CultureInfo.InvariantCulture,
DateTimeStyles.None,out end)

これは、定義された形式を使用して文字列を解析しようとし、形式が無効な場合は false を返します。

于 2013-03-19T12:45:32.923 に答える
0

DateTime.TryParseをチェックするより強力なエラーを使用します。DateTimeが正しく解析されていない可能性があります。

DateTime end;

if(!DateTime.TryParse(txtEndDate.Text, out end))
{
    throw new FormatException("End Date must be in a valid format");
}

SqlParameterCollection.AddWithValueを使用するか、を指定しますSqlDbType

AppendNews.Parameters.AddWithValue("@show_to", end);
于 2013-03-19T12:49:18.877 に答える
0

実際の問題は、ASP サーバーのカルチャがデータベース サーバーと一致しなかったことが原因でした。この問題を解決するには、ASP プロジェクトの web.config ファイルでカルチャを設定する必要があります。<system.web>ラッパーの一部として、このようにします。

<globalization uiCulture="en-GB" culture="en-GB"/>

次に、スクリプトから値を収集するときに、この行を使用してスクリプトでこの値を参照できます。

DateTime dFrom = DateTime.ParseExact(txtDate.Text, "dd/MM/yyyy", CultureInfo.CurrentUICulture);

お役に立てれば!

于 2013-03-31T20:28:25.083 に答える