C#でNullableなDateTimeのDataRowをDateTimeに変換する方法


  1. DataRowのNullableなDateTime列を取得します。例えば、"NullableDateTimeColumn"という名前の列があるとします。
DataRow row = // DataRowを取得するコード
  1. DataRowのNullableなDateTime列をDateTimeに変換します。変換には、C#のNullable型のValueプロパティを使用します。
DateTime? nullableDateTime = row.Field<DateTime?>("NullableDateTimeColumn");
DateTime dateTime = nullableDateTime.HasValue ? nullableDateTime.Value : default(DateTime);

上記のコードでは、nullableDateTimeがnullでない場合はその値をdateTimeに代入します。nullの場合は、default(DateTime)が代入されます。

または、C# 6以降では、null合体演算子を使用して次のように書くこともできます。

DateTime? nullableDateTime = row.Field<DateTime?>("NullableDateTimeColumn");
DateTime dateTime = nullableDateTime ?? default(DateTime);
  1. 変換されたDateTimeを使用します。
Console.WriteLine(dateTime);

上記のコードでは、変換されたDateTimeをコンソールに出力しています。必要に応じて、この値を他の目的に使用することができます。

以上が、C#でNullableなDateTimeのDataRowをDateTimeに変換する方法です。これにより、NullableなDateTime値を安全に取得して使用することができます。