amit ghosh
amit ghosh

Reputation: 276

Date giving exception in US server

I am getting a date string from the javascript and converting that to Datetime and save that to the database.

But in the Indian server my code working fine. But when I upload my code to US based server it's giving exception. Is there any common way to make my code runnable to all the server.

My code is like below

[WebMethod(EnableSession = true)]
public static bool submitDate( string date ) // format is dd-mm-yyyy 20-01-2011
 {
    DateTime DOBdate = DateTime.Now;
    double age = 0.0;

    if (DateTime.TryParse(date , out DOBdate))
    {
            age = (DateTime.Now - DOBdate).Days / 365;
    }

      dbcmd.Parameters.Add("@DateOfBirth", SqlDbType.DateTime).Value = Convert.ToDateTime(DOBdate); 
}

Please help me.

the exception which is showing is SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM.

Upvotes: 0

Views: 70

Answers (1)

Peter
Peter

Reputation: 27944

You should use TryParseExact, I guess the default datetime format of the server is not dd-mm-yyyy. And you should handle the if of the parse function:

public static bool submitDate( string date ) // format is dd-mm-yyyy 20-01-2011
{
    DateTime DOBdate = DateTime.Now;
    double age = 0.0;

    if (DateTime.TryParseExact(date , {"dd-MM-yyyy"}, 
                          null,
                          DateTimeStyles.None, 
                          out DOBdate))
    {
         age = (DateTime.Now - DOBdate).Days / 365;
    }
    else
    {
        // Handle this case!
    }

    dbcmd.Parameters.Add("@DateOfBirth", SqlDbType.DateTime).Value = Convert.ToDateTime(DOBdate); 
 }

BTW your age function is not a realy good indication of the age. The older your person, the more faulty it gets.

Upvotes: 2

Related Questions