在 Microsoft SQL 服务器 [C#] 上 Convert.ToDouble 时出现异常

Exception when Convert.ToDouble on Microsoft SQL Server [C#]

我有一个程序首先使用 MAX 语句从 SQL 服务器数据库中获取最大值。

它得到类似的东西:456.325。我改变了“。”用“,”并删除每个白色 space。

我完全确定这个字符串可以转换为双精度数,因为它适用于我自己的笔记本电脑。

但是,当我 运行 服务器(2008 R2)上的软件时,它不起作用。我收到格式异常。我尝试了 Double.ParseTo,但我也没有用。

代码:

string str = "";
double d = 0;

while (dataReader.Read())
{
    str = String.Format("{0}", dataReader[0]);

}
str = str.Replace('.', ',');
str = str.Replace(" ", "");
try
{
    d = System.Convert.ToDouble(str);

}
catch (Exception ex)
{
    MessageBox.Show("Can't convert");
}

会不会是因为服务器上的 .NET 版本?

您的笔记本电脑和服务器的区域设置不同。

您必须指定文化 IFormatProvider 以获得一致的结果。