由于calendarextender中日期时间格式错误而导致日期时间错误无效

时间:2013-07-03 06:54:40

标签: c# sql-server-2008

我正在尝试将 DateTime 值存储在数据库字段“Date”中,其数据类型为DateTime。

但我收到以下错误:

  

字符串未被识别为有效的DateTime。

我的代码如下:

dr["Date"] = System.Convert.ToDateTime(txtDate.Text);

dr["Date"]为我提供数据库列名“Date”,其数据类型为数据库中的datetime 我使用 calender extender for txtDate textbox ,获得DateTime值 然后将该值转换为 DateTime 数据类型,以便我可以将该值插入数据库表  但是,当我提供正确的数据类型时,为什么我会遇到错误。

3 个答案:

答案 0 :(得分:2)

我想分享一下我做错了什么,虽然它会让我看起来像个傻瓜。但希望它可以帮助其他人解决同样的问题。

我为日历扩展程序提供了错误的格式,如下所示:

  

YYYY-MM-DD

正确的格式应该是:

  

YYYY-MM-DD

答案 1 :(得分:0)

某些代码可以捕获这样的内容并且不会导致异常:

if (DateTime.TryParse(txtDate.Text, out dateValue)) 
{
      dr["Date"] = dateValue;
}
else
{
      Debug.Write("TextBox Value '{0}' isn't a valid datetime.", txtDate.Text);
}

答案 2 :(得分:0)

使用DateTime.TryParseExact根据格式提取DATETIME

            DateTime yourDate;
            var formats = new[] { "yyyy-MM-dd" };
            if (DateTime.TryParseExact(s, formats, CultureInfo.InvariantCulture, DateTimeStyles.None, out yourDate))
            {
                dr["Date"] = yourDate;
            }
            else
            {
                // Do with Invalid DateTime
            }