我将VS2012和SQL Server 2012用作数据库-一切正常,但是当我将其转移到也使用VS2012和SQL Server 2012的另一台笔记本电脑时,在将数据库中的日期转换为日期时间时出现错误是代码。
DateTime date = DateTime.Parse(dr8["Date Added"].toString());
Date Added
存储为VARCHAR(MAX)
,但它在我的电脑上运行良好,但是在传输到笔记本电脑时显示错误
字符串未被识别为有效的“ DateTime”
答案 0 :(得分:0)
问题是由于多台计算机上的默认文化设置引起的。另请参阅这篇文章:C# DateTime conversion same culture on different machines 此外,我建议使用TryParse而不是Parse来正确处理所有这些错误。例如,请参见下面的代码以及固定文化后的版本:
// First version
public static bool TryFormat(string dateTimeString, out DateTime dateTime)
{
if (DateTime.TryParse(dateTimeString, out dateTime))
{
return true;
}
return false;
}
// Second version , specifying the cuture as suggested by @Zohar
public static bool TryFormat(string dateTimeString, out DateTime dateTime)
{
var culture = CultureInfo.CreateSpecificCulture("en-US");
DateTimeStyles style = DateTimeStyles.None;
if (DateTime.TryParse(dateTimeString, culture, style, out dateTime))
{
return true;
}
return false;
}