C# 约会时间的问题
我一直在尝试将.csv文档的一些行添加到SQL数据库中,但在某一点上我得到了以下例外:C# 约会时间的问题,c#,datetime,exception,C#,Datetime,Exception,我一直在尝试将.csv文档的一些行添加到SQL数据库中,但在某一点上我得到了以下例外: SYSTEM.FORMATEXCEPTION: STRING '0000-00-00 00:00:01' WAS NOT RECOGNIZED AS A VALID DATETIME. AT SYSTEM.DATETIMEPARSE.PARSE(READONLYSPAN`1 S, DATETIMEFORMATINFO DTFI, DATETIMESTYLES STYLES) AT SYSTEM.DATETIM
SYSTEM.FORMATEXCEPTION: STRING '0000-00-00 00:00:01' WAS NOT RECOGNIZED AS A VALID DATETIME.
AT SYSTEM.DATETIMEPARSE.PARSE(READONLYSPAN`1 S, DATETIMEFORMATINFO DTFI, DATETIMESTYLES STYLES)
AT SYSTEM.DATETIME.PARSE(STRING S)
AT FRAME2020.OBJETOSERVICIOS.DEVOLVERSERVICIOS(STRING[] LISTA) IN
D:\TRABAJO\FRAME2020\FRAME2020\CONEXIONBDD.CS:LINE
我不知道如何解决这个问题,我尝试了try/except,但它不适用于我的方法,有什么建议吗?问题在于您尝试设置的日期:
0000-00-00 00:00:01
,没有第0天、第0个月和第0年。
最小
DateTime
是1-1-0001 00:00:00
您没有向我们显示任何代码,因此我在这里做一些假设。看起来您正在使用DateTime.Parse
解析csv
源中您希望成为DateTime
的列。但是,您的源代码在该列中的值不能解析为有效的DateTime
。例如0000-00-00:00:01
其他人已经指出,0000-00-00 00:00:01
不是有效的DateTime
。为了解决这个问题,您可以使用不同的方法来解析该列。例如这将尝试将字符串
解析为日期时间
,如果失败则返回false
,如果成功则返回true
string s = "0000-00-00 00:00:01";
if (!DateTime.TryParse(s, out DateTime dt))
{
// The string could not be parsed to a DateTime.
}
else
{
// The string was successfully parsed and the variable dt will have the parsed
// DateTime.
}
一旦你有了它,你就会知道你是否成功地将
字符串
解析成日期时间
,并且你可以做一些事情,而不是在失败时抛出格式异常。你能展示一个能说明你的问题的例子吗?顺便说一下,DateTime.MinValue
在公历中是00:00.0000000 UTC,0001年1月1日
,因此,您的0000-00-00 00:00:01
值似乎不是有效的DateTime
。虽然异常消息是本地化的,但我不知道有任何设置会在所有CAP中显示它们,我想知道这是怎么回事,我相信这是因为SQL中的DateTime最小值大约是1770年左右。因此,您不能插入年=0000的日期。@VDN例外是表单.net解析器,而不是SQL。所以在这种情况下SQL值是不相关的对不起,没有显示任何代码!谢谢你的帮助谢谢,抱歉没有显示任何代码,真的很有帮助!谢谢你的帮助!