この値 (row[10]) は、T-SQL の SQL 結果セットの DataRow オブジェクトから取得されます。「オブジェクト」というタイプがあると思います。私のデータベースでは、この特定のレコードのこのフィールドに NULL の値がありますが、結果セットには null 値ではなく空の文字列が返されます。根本的な問題を修正し、結果セットが空の文字列ではなく NULL を返すようにしたいのですが、それが不可能な場合は、このコードをより効率的にするだけで十分です。つまり、最初のスニペットです。ケース。
これは、row[10].ToString() が空の文字列、null、または DateTime 形式に等しい場合に機能しますが、短くしたいと思います。これが今のところ私の回避策です。
string temp0 = row[10].ToString();
DateTime? temp = null;
if (temp0 == "")
{
temp0 = null;
}
if (temp0 != null)
{
temp = DateTime.Parse(temp0);
}
d.date_migrate_prod = temp == null ? null : temp;
これは、null 日時値、実際の日時値に対して機能しますが、row[10] が空の文字列に等しい場合は機能しません。
DateTime? temp = DateTime.Parse(row[10].ToString());
d.date_migrate_prod = temp == null ? null : temp;