C# 由于日历扩展程序中的日期时间格式错误,导致无效的日期时间错误
我正试图在数据库字段中存储数据类型为DateTime的DateTime值 但我得到了以下错误: 字符串未被识别为有效的日期时间 我的代码如下:C# 由于日历扩展程序中的日期时间格式错误,导致无效的日期时间错误,c#,sql-server-2008,C#,Sql Server 2008,我正试图在数据库字段中存储数据类型为DateTime的DateTime值 但我得到了以下错误: 字符串未被识别为有效的日期时间 我的代码如下: dr["Date"] = System.Convert.ToDateTime(txtDate.Text); dr[“Date”]为我提供数据库列名“Date”,其数据类型为数据库中的datetime。 我正在使用用于txtDate文本框的日历扩展程序获取日期时间值, 然后将该值转换为DateTime数据类型,以便将该值插入数据库表。 但为什么在给出正确
dr["Date"] = System.Convert.ToDateTime(txtDate.Text);
dr[“Date”]
为我提供数据库列名“Date”,其数据类型为数据库中的datetime。我正在使用用于txtDate文本框的日历扩展程序获取日期时间值,
然后将该值转换为DateTime数据类型,以便将该值插入数据库表。
但为什么在给出正确的数据类型时会出现上述错误。一些代码可以捕获类似的内容,并且不会导致异常:
if (DateTime.TryParse(txtDate.Text, out dateValue))
{
dr["Date"] = dateValue;
}
else
{
Debug.Write("TextBox Value '{0}' isn't a valid datetime.", txtDate.Text);
}
用于根据格式提取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
}
我想分享我到底做错了什么,尽管这会让我看起来像个傻瓜。但希望它能帮助其他人解决同样的问题 我为日历扩展器提供了错误的格式,如下所示: 年月日 正确的格式应为: 年月日
文本框中的文本是什么?这个错误信息量很大你没有告诉我。那么
00
是哪一个月?这是自定义格式吗?(YYYYhhmm)?@Sayse-说得好。可能格式是yyyy-mm-dd
,而它应该是yyy-mm-dd
mm
是分钟MM
是月份。发布答案时+1。我不认为这会让你看起来像个傻瓜。有时,仅仅需要第二批(或更多)新鲜的眼睛就能发现问题——每个开发人员都会有“我就是想不出这个错误”的时刻:)别忘了接受你的答案,这样你也会因此而获得代表信用。