Reputation: 1681
Having an issue with casting a datetime from a reader where the value is null.
form._date101 = reader[52] == DBNull.Value ? DBNull.Value : (DateTime?)reader[52];
getting: Type of conditional expression cannot be determined because there is no implicit conversion between 'System.DBNull' and 'System.DateTime?'
any ideas?
Upvotes: 2
Views: 4136
Reputation: 30227
You can also take Jon's answer and add it as an extension method like this:
public static class ReaderExtensions
{
public static DateTime? GetNullableDateTime(this SqlDataReader reader, string name) =>
reader[name] == DBNull.Value ? (DateTime?)null : (DateTime?)reader[name];
}
Then you can use it like this:
item.PatientDob = reader.GetNullableDateTime("Birth_Dt");
Upvotes: 2
Reputation: 1503290
I suspect you meant:
form._date101 = reader[52] == DBNull.Value ? null : (DateTime?)reader[52];
That's assuming that _date101
is a field of type DateTime?
. I expect you want to say "Use the null value of DateTime?
if the value was null in the database; otherwise use the non-null value.
Upvotes: 12