转移到另一台PC时C#SQL Server转换日期时间错误

时间:2018-08-19 04:53:05

标签: c# tsql sql-server-2012

我将VS2012和SQL Server 2012用作数据库-一切正常,但是当我将其转移到也使用VS2012和SQL Server 2012的另一台笔记本电脑时,在将数据库中的日期转换为日期时间时出现错误是代码。

DateTime date = DateTime.Parse(dr8["Date Added"].toString());

Date Added存储为VARCHAR(MAX),但它在我的电脑上运行良好,但是在传输到笔记本电脑时显示错误

  

字符串未被识别为有效的“ DateTime”

results

screenshot

1 个答案:

答案 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;
        }