首先,我知道其他人已发布此错误,但我相信我的问题与其他人不同。我有一个方法,我用来将字符串转换为日期时间,我试图使用DateTime.TryParse方法,但我只是在使用DateTime.TryParse方法时得到上述错误,即使两个结果都是相同。我很困惑为什么会这样。
My method:
public static DateTime parseDateTime(string data)
{
try
{
return Convert.ToDateTime(data.Replace('"', ' ').Trim());
}
catch (FormatException format)
{
Console.WriteLine(format.Message);
Console.WriteLine(data);
}
catch (OverflowException overflow)
{
Console.WriteLine(overflow.Message);
Console.WriteLine(data);
}
return DateTime.MaxValue;
}
返回: {11/26/2014 12:00:00 AM}
My new method:
DateTime date = new DateTime();
using (DailyAmexDataTableAdapter amexAdapter = new DailyAmexDataTableAdapter())
{
DateTime.TryParse(lineArray[0], out date);
amexAdapter.Insert(symbol, open, high, low, close, volume, adjClose, date); // error here
}
返回: {12/26/2014 12:00:00 AM}
答案 0 :(得分:1)
您正在使用
DateTime.TryParse(lineArray[0], out date);
如果lineArray[0]
未被识别为有效日期,则DateTime.TryParse
将返回false并将date
设置为DateTime.MinValue。这不是sql date
或datetime
列的有效值。
你正在"初始化" date
变量(DateTime date = new DateTime();
)并不重要:tryParse忽略该值并分配一个新值。您可以删除=new DateTime()
。
如果它有效,那么new DateTime()
仍然会以DateTime.MinValue结束。
因此,您需要测试TryParse的结果,如果它是假的,则需要做其他事情。