How to set DateTime variable to Null in C#?

G

Guest

Hello,

I have a system where it gets its data from a file that is provided
periodically. There are cases where many values such as dates are blank.

Considering DateTime variable doesn't accept null, and SQL Server doesn't
accept DateTime.MinValue...

What is the solution to deal with these kind of cases? I probably could
create some work around to send some awkword value that SQL accept and then
treat it from there, but to me there should be some other practical solution
for this!??
(btw: my company hasn't updated to 2.0 yet)

Thanks for your response in advance,
Reza
 
T

Teemu Keiski

Hi,

DateTime is a value type, it cannot represent null (or DBNull)

simple way is just to set it to DateTime.MinValue and when setting values
for stored proc parameters, check for DateTime.MinValue, and when that's the
value send null to the database (set DBNull.Value to be param value)
 
E

Eliyahu Goldin

Reza,

Just replace nulls with something suitable for your code when you read, and
do the opposite when you write. That's what I am doing and I don't think
there is anything more elegant.

Eliyahu
 
M

Mark Rae

Prior to v2, I used to use a separate class for this. Basically, it
simulated the nullable datatype functionality built into v2. I.e. instead of
declaring a DateTime variable / object / class (whatever you want to call
it), I'd declare a NullableDateTime variable, which has a Value property, a
HasValue property etc.

I can let you have a copy of it if you like...
(btw: my company hasn't updated to 2.0 yet)

As soon as you upgrade, you'll be able to do this:

DateTime? dtmTest = null;

if (dtmTest.HasValue)
{
// write the value into the database
}
else
{
// write a NULL into the database
}
 
Joined
Nov 20, 2014
Messages
2
Reaction score
0
By default DateTime is not nullable because it is a Value Type, using the nullable operator introduced in C# 2, you can achieve this.
Using a question mark (?) after the type or using the generic style Nullable.
Nullable < DateTime > nullDateTime;
or
DateTime? nullDateTime = null;

Crony
 
Last edited by a moderator:

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,733
Messages
2,569,439
Members
44,829
Latest member
PIXThurman

Latest Threads

Top