在实时服务器上浮动问题

时间:2016-11-03 11:46:57

标签: c# asp.net sql-server

我正在尝试制作一个注册表单,应该计算2个字段,然后将答案放入Db中。这在localhost上运行完美,但是当我将文件复制到服务器并试用它时它就失败了。

The error message that comes up when running from the server.

以下代码:

    var l = Convert.ToSingle(honorarList.Text);
    var m = Convert.ToSingle(bomList.Text);
    var s = l + m;

    var i = Convert.ToSingle(km.Text);
    var j = Convert.ToSingle(kmSatsList.Text);
    var k = i * j;
    kmGodt.Text = " " + k;

    var z = s + k;
    totalSum.Text = " " + z;

我删除了SQL插入语句。

SQL结构:

Structure I have in MS-SQL

1 个答案:

答案 0 :(得分:2)

我猜有两个问题,都是彼此相关的。

  1. 您的语言设置在服务器上有所不同。解决方案是为Convert.ToSingle方法提供文化:

    Convert.ToSingle(km.Text, CultureInfo.InvariantCulture);
    

    您也将该变量作为字符串传递,您不应该这样做。

  2. 您遇到的最严重问题是您没有使用参数化查询。您现在很容易受到SQL注入攻击。您必须重写代码以使用参数,而不是自己构造SQL。这也将解决您的问题,因为ADO.NET提供程序将转换float本身。