我正在从javascript中获取一个日期字符串,然后将其转换为dateTime并将其保存到数据库。
但是在印度服务器中,我的代码正常工作。但是,当我将代码上传到基于我们的服务器时,它给出了例外。是否有任何通用方法可以使我的代码可运行到所有服务器。
我的代码就像以下
[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);
}
请帮助我。
显示的例外是SQLDATETIME溢出。必须是1/1/1753 12:00:00 AM到12/31/9999 11:59:59 PM。
您应该使用tryparseexact,我想服务器的默认日期格式不是dd-mm-yyyy。并且您应该处理解析功能的if:
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);
}
顺便说一句,您的年龄功能并不是年龄的很好的迹象。年龄较大的人,就会越有缺陷。