双变量SQL Server和Double变量ASP.NET

时间:2014-03-31 23:18:37

标签: asp.net sql sql-server floating-point double

在我的asp web项目中,我有一些双重类型的变量。这个变量我也存储在sql server数据库中。我在互联网信息中发现浮动数据类型最好。但是,Sql Server接受带逗号的数字,如" 1,3" " 12,7&#34 ;.在asp代码中,我有双重变量,点类似于" 1.3" " 2.7"等等...当我尝试在asp网中使用带逗号的数字时,我收到错误"标识符预期"。我在sql server中尝试将数据类型更改为nvachar,并且有效,但使用查询和" Order BY columnNameWithDoubleNumber DESC"有很多问题。因为我收到的结果我没有预料到。 拜托,你能帮帮我吗? :/

1 个答案:

答案 0 :(得分:1)

您正在将数字与数字的文本表示混合。作为一个数字,该值没有任何特定格式,只有当您将数字转换为字符串或将字符串解析为文化设置发挥作用的数字时才会出现。

如果将数字作为文本存储在数据库中,则在尝试对其进行排序时,它将作为文本进行比较。您应该将数字存储为数字,然后将正确排序。

如果ASP.NET代码中有double值并使用参数在查询中发送,则小数分隔符不存在文化问题。

如果要将十进制值连接到SQL查询(不建议这样做),则应使用句点作为小数分隔符。 SQL总是使用句点作为小数分隔符,就像ASP.NET代码中的双字符一样。