【问题标题】:Storing French (decimal values) in database?在数据库中存储法语(十进制值)?
【发布时间】:2010-07-18 06:36:43
【问题描述】:

我的表单也设置为法语,它会自动将文本格式更改为使用“,”。但是,当我尝试将我的值插入数据库时​​,它说不能将 nvarchar 转换为十进制?

最坏的情况,有没有办法可以禁止数字更改为使用“,”而只使用“。”总是不管它是什么语言?

我的工作语言是 vb.net

谢谢,

罗伯特

【问题讨论】:

  • 您使用的是哪个数据库引擎(即 SQL Server),以及哪个数据访问库(即 ADO.NET)?
  • 我使用的是 SQL Server

标签: asp.net vb.net cultureinfo


【解决方案1】:

如果您将值作为 nvarchar 向下传递到数据库,那么您需要使用 yourDecimalValue.ToString(Globalization.CultureInfo.InvariantCulture) 或类似方法将其转换为字符串。 SQL Server 将始终期望小数点为 1.23 格式 - 您可以想象如果提交包含 WHERE myvalue IN (1,25, 1,33, 1,45) 的查询会导致的麻烦!

【讨论】:

  • 另一种选择是不直接使用查询字符串,而是使用存储过程 - 您可以将参数值设置为十进制而不是十进制 -> 涉及字符串转换。
  • 是否可以保留带小数位的数字,而不是显示 "," 。这是通用设置吗?
  • 您希望他们在哪里显示“,”?在客户端程序中——我猜可能是——当传递给 SQL 时——绝对不是。
猜你喜欢
  • 2016-06-10
  • 2017-05-21
  • 2018-11-20
  • 1970-01-01
  • 2018-08-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-25
相关资源
最近更新 更多