6

DateTime フィールドを持つプロジェクトを開発しています。

その中で、日付が必須フィールドではないことを考慮して、ユーザーが日付形式「dd/MM/yyyy」を選択するためにjQueryを使用しています。

WebMatrix と Razor で不要な DateTime フィールドを保存するにはどうすればよいですか?

私はこのようなことをしようとしていました:

コードを完成させるために重要だと思われるコードのみをここに配置します

@{
//Get data
string TaskForecastCompletion= Request["txtForecastCompletion"];
string TaskCompletedIn= Request["txtCompletedIn"];

                    DateTime dtForecastCompletion = default(DateTime);
                    if (!Request["txtForecastCompletion"].IsEmpty() && !DateTime.TryParse(Request["txtForecastCompletion"], out dtForecastCompletion))
                    {
                            ModelState.AddError("PrevisaoFinalizacao", "Data de previsão de finalização é inválida. Formato: dd/mm/aaaa");
                    }


                                    sql = @"update Tasks set Title = @0 ,Description = @1 ,ProjectID = @2 ,ForecastCompletion = @3 ,RequestBy = @4 ,CompletedIn = @5 ,Modified = getdate() ,Priority = @6 where ID = @7";
                                    db.Execute(sql, TaskTitle,TaskDescription, ProjectID, dtForecastCompletion, TaskRequestBy, dtTaskCompletedIn, TaskPriority, TaskID);
}

変更中にエラーが発生しました

日時への変換中にオーバーフローが発生しました。説明: 現在の Web 要求の実行中に未処理の例外が発生しました。エラーの詳細とコード内のどこでエラーが発生したかについては、スタック トレースを確認してください。

例外の詳細: System.Data.SqlServerCe.SqlCeException: 日時への変換中にオーバーフローが発生しました。

ソース エラー:

62行目: { 63行目:
sql = @"update Tasks set Title = @0 ,Description = @1 ,ProjectID = @2 ,ForecastCompletion = @3 ,RequestBy = @4 ,CompletedIn = @5 ,Modified = getdate() ,優先度 = @6 ID = @7"; 行 64:
db.Execute(sql, TaskTitle,TaskDescription, ProjectID, dtForecastCompletion, TaskRequestBy, dtTaskCompletedIn, TaskPriority, TaskID); 65行目:
} 66行目:

4

2 に答える 2

4

データベースの日付フィールドが null 許容 (NOT NULL としてマークされていない) の場合、C# のデータ型をnull 許容の DateTimeに変更できます。

 DateTime? dtForecastComplete = null;

これで、データベースとの間で null 値を渡す (および取得する) ことができます。

于 2011-02-28T14:53:25.767 に答える
0

「Quick And Dirty」ソリューションが必要な場合は、DateTime.MinValue初期値として挿入し、再度表示するときにそれをテストして空にします。

もちろん、insert ステートメントと値リストを動的に作成し、値が空の場合はリストから除外することをお勧めします。

于 2011-02-28T14:43:53.950 に答える