How to set DateTime variable to Null in C#?

Discussion in 'ASP .Net' started by Guest, Jun 29, 2006.

  1. Guest

    Guest 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
     
    Guest, Jun 29, 2006
    #1
    1. Advertisements

  2. Guest

    Teemu Keiski Guest

    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)
     
    Teemu Keiski, Jun 29, 2006
    #2
    1. Advertisements

  3. 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
     
    Eliyahu Goldin, Jun 29, 2006
    #3
  4. Guest

    Mark Rae Guest

    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...
    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
    }
     
    Mark Rae, Jun 29, 2006
    #4
  5. Guest

    cronynaval

    Joined:
    Nov 20, 2014
    Messages:
    2
    Likes Received:
    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: Nov 21, 2014
    cronynaval, Nov 20, 2014
    #5
    1. Advertisements

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 (here). After that, you can post your question and our members will help you out.