我正在尝试制作一个注册表单,应该计算2个字段,然后将答案放入Db中。这在localhost上运行完美,但是当我将文件复制到服务器并试用它时它就失败了。
以下代码:
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结构:
答案 0 :(得分:2)
我猜有两个问题,都是彼此相关的。
您的语言设置在服务器上有所不同。解决方案是为Convert.ToSingle
方法提供文化:
Convert.ToSingle(km.Text, CultureInfo.InvariantCulture);
您也将该变量作为字符串传递,您不应该这样做。
您遇到的最严重问题是您没有使用参数化查询。您现在很容易受到SQL注入攻击。您必须重写代码以使用参数,而不是自己构造SQL。这也将解决您的问题,因为ADO.NET提供程序将转换float
本身。