Using C#. I have a string dateTimeEnd
.
If the string is in right format, I wish to generate a DateTime
and assign it to eventCustom.DateTimeEnd of type
public Nullable<System.DateTime> DateTimeEnd { get; set; }
If dateTimeEnd
is null or empty I need eventCustom.DateTimeEnd
set to null.
I am trying to achieve this using the following code but I get always null for eventCustom.DateTimeEnd
.
Could you please help me out to define what is wrong in my code?
DateTime? dateTimeEndResult; if (!string.IsNullOrWhiteSpace(dateTimeEnd)) dateTimeEndResult = DateTime.Parse(dateTimeEnd); eventCustom.DateTimeEnd = dateTimeEndResult = true ? (DateTime?)null : dateTimeEndResult;
Is it possible to set datetime object to null in C#? DateTime is a Value Type like int, double etc. so there is no way to assigned a null value.
In SQL Server just insert NULL in the Datetime column: INSERT INTO Table(name, datetimeColumn, ...) VALUES('foo bar', NULL, ..);
Yes, that works fine.
CSharp Online TrainingUsing the DateTime nullable type, you can assign the null literal to the DateTime type. A nullable DateTime is specified using the following question mark syntax.
It looks like you just want:
eventCustom.DateTimeEnd = string.IsNullOrWhiteSpace(dateTimeEnd) ? (DateTime?) null : DateTime.Parse(dateTimeEnd);
Note that this will throw an exception if dateTimeEnd
isn't a valid date.
An alternative would be:
DateTime validValue; eventCustom.DateTimeEnd = DateTime.TryParse(dateTimeEnd, out validValue) ? validValue : (DateTime?) null;
That will now set the result to null
if dateTimeEnd
isn't valid. Note that TryParse
handles null
as an input with no problems.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With