2013-07-03 18 views
0

我试图存储在数据库中的字段日期时间“日期”,其数据类型为datetime。不适日期时间错误是由于压延延长日期时间的错误fomat

但我得到以下错误:

String was not recognized as a valid DateTime.

我的代码如下:

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

dr["Date"]给我的数据库列名“日期”,其数据类型是在我的数据库日期时间。
我正在使用压延扩展为txtDate文本框
则该值转换为日期时间数据类型,这样我可以插入值,以数据库表DateTime值。
但是,当我给出正确的数据类型时,为什么会出现以上错误。

+1

什么是在文本框中的文本?错误信息非常丰富 – Sayse

+1

你有我们的错误答案。无论txtDate.Text是什么,都不是有效的DateTime。 – Smartis

+1

'txtDate.Text'的值是什么? –

回答

2

我想分享什么正是我做错了,虽然它会让我看起来像个傻瓜。但希望它能帮助有相同问题的其他人。

我给日历扩展格式错误,如下图所示:

yyyy-mm-dd

正确的格式应该是:

yyyy-MM-dd

+2

+1发布答案。我不认为这会让你看起来像个傻瓜。有时只需要第二套(或更多)新鲜眼睛来解决问题 - 每个开发人员都有他们的“我无法弄清楚这个错误”的时刻。 :)不要忘记接受你的答案,所以你也可以获得代币。 – Tim

0

一些代码,以赶上这样的事情,并不会导致Exeption:

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