[英]How to convert sql type double-precision in c#
我有一个数据库访问权限,其中一个字段是双精度的。 通常,如果我在文本框1.71或1,71中设置,则数据库中的字段应包含1.71。
但是如果我执行查询,acces'field的值是171 !!
public const string QUERY =
@"UPDATE TBLART
SET TBLART.COST = @cost
WHERE TBLART.CODE= '1'";
var param = new DynamicParameters();
var cost = totalCost.Replace(',', '.'); //totalCost is a textbox
param.Add("cost", Double.Parse(cost), DbType.Double);
gsmconn.Execute(QUERY, param);
我错了什么? 谢谢。
double.Parse
默认使用当前线程的文化。 我怀疑你现在的文化是用“。” 作为分组分隔符。
两种选择:
Replace
,但在解析时指定CultureInfo.InvariantCulture
如果我在Windows窗体中正确记住,您可以将double属性绑定到文本框,它将自动处理解析和转换。 您不应该手动从字符串解析为double。
这个问题已经由.NET框架解决了。
另一个建议是,您的数据访问代码不应该进行任何解析。 这应该在更高层进行。 但最好把它留给框架。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.