Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在SQL Server中设置十进制数_C#_Sql Server_Linq To Sql - Fatal编程技术网

C# 在SQL Server中设置十进制数

C# 在SQL Server中设置十进制数,c#,sql-server,linq-to-sql,C#,Sql Server,Linq To Sql,我有一个十进制字段,当我在使用葡萄牙语SQL Server的机器上将字符串“1000,00”转换为十进制时,它可以正确地保存1000,但在操作系统为英语的服务器上,它可以保存100000 我已经将区域设置设置为葡萄牙语,将数据库排序规则设置为Latin1_General_CI_AS 我在服务器上没有做什么?您应该在计算机之间以十进制(或其他适当的数字类型)的形式传输它,如果可能,存储为数字类型,而不是字符串。如果您确实需要使用字符串,请在适当的位置使用来转换数字类型,以避免类似这样的区域设置错误

我有一个十进制字段,当我在使用葡萄牙语SQL Server的机器上将字符串“1000,00”转换为十进制时,它可以正确地保存1000,但在操作系统为英语的服务器上,它可以保存100000

我已经将区域设置设置为葡萄牙语,将数据库排序规则设置为Latin1_General_CI_AS


我在服务器上没有做什么?

您应该在计算机之间以
十进制
(或其他适当的数字类型)的形式传输它,如果可能,存储为数字类型,而不是
字符串
。如果您确实需要使用
字符串
,请在适当的位置使用来转换数字类型,以避免类似这样的区域设置错误


简言之,服务器的区域性永远不应该发挥作用:您应该将其固定。

您应该将其作为
十进制
(或其他适当的数字类型)在计算机之间传输,并尽可能将其存储为数字类型,而不是
字符串
。如果您确实需要使用
字符串
,请在适当的位置使用来转换数字类型,以避免类似这样的区域设置错误


简而言之,服务器的区域性永远不应该发挥作用:您应该将其固定。

这是因为您有一个逗号,而不是句点。在英语中,句号用于从数字的小数部分指定整数。因此,字符串
1000.00
将转换为1000。请在例如Management Studio中执行此操作,并报告结果:
select@@language
,这是因为您有逗号而不是句点。在英语中,句号用于从数字的小数部分指定整数。因此,一个字符串
1000.00
将转换为1000。请您在示例管理工作室中执行此操作,并报告结果:
select@@language
我使用了固定区域性,它工作正常,谢谢。转换为特定(valor,新文化信息(“pt BR”);我使用了不变的文化,这很有效,谢谢。转换为特定(valor,新文化信息(“pt BR”);