首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >SQL SERVER和C#中的国际化查询

SQL SERVER和C#中的国际化查询
EN

Stack Overflow用户
提问于 2011-11-14 04:21:59
回答 3查看 502关注 0票数 2

我必须做一个应用程序,将使用在美国,其中有十进制分隔符。在有十进制分隔符as的斯堪的纳维亚半岛,斯堪的纳维亚国家也有额外的字符,如

我对这种国际化相当陌生。美国和斯堪的纳维亚的应用程序和数据库都是一样的。

在这些问题上我需要你的帮助:-

  1. 我应该在数据库中使用什么类型的排序规则?
  2. 在前端( C#),是否有可能在美国,我可以显示数字值为100.00,在斯堪的纳维亚显示为100,00,并以某种方式确保计算和保存数据库没有任何问题?

谢谢

EN

回答 3

Stack Overflow用户

发布于 2011-11-14 04:44:35

在Server中,校对用于对文本数据进行排序等操作,因此我认为该决定不会影响货币等。

从.NET前端(和sql后端),您必须选择正确的数据类型(例如,Decimal,DateTime)来操作数据--为了显示和输入目的,您可以执行特定于地区的格式设置(例如,参见数值格式字符串中的货币格式说明符 )。可以在函数(如Decimal.ToStringString.Format )中指定格式。它们将使用您的当前现场,但您可以让覆盖指定特定于地区的格式提供程序。类似地,您可以使用解析方法将字符串转换为实际的数据类型。

票数 2
EN

Stack Overflow用户

发布于 2011-11-14 04:41:11

  1. 你可以选择这里的校对,选择Server排序规则,还有斯堪的纳维亚的校对。
  2. 十进制显示表取决于Windows设置,不会影响计算。

在将字符表达式转换为数字数据类型时会遇到一些问题。

数据类型转换

正在转换为精确数字数据类型的字符表达式必须由数字、小数点和可选加号(+)或减号(-)组成。前导空格被忽略。字符串中不允许逗号分隔符,例如123,456.00中的数千个分隔符。

票数 0
EN

Stack Overflow用户

发布于 2011-11-14 06:36:08

使所有字符串数据类型为NVARCHAR (如果长度固定,则为NCHAR ),以便支持unicode字符。

既然您说您的“数据库”将是相同的,那么您的意思是服务器是同一个物理实例,还是只是相同的模式?

如果要为美国和斯堪的纳维亚提供单独的服务器,这意味着您只需将SQL服务器排序规则和Windows server本地化设置设置为USA或斯堪的纳维亚,就需要通过开发不断测试解决方案,以确保任何错误都不会在不被注意到的情况下传播太长时间。

也可以有一个数据库实例,然后在WS /应用程序端更改本地化,例如,这意味着您以USA格式传递所有时间和数字。但是,您可以将这些值显示为美国或斯堪的纳维亚格式,如果您是一个已安装(而不是web应用程序),您可以在用户的本地计算机本地化设置下运行此控件,这将为您完成大部分的繁重工作,而不会出现任何问题。

例:DateTime.Now.ToString()将报告"16:34 14/11/2011“中的一个本地化设置,而"16:34 11/14/2011”用于美国本地化,内部数据是相同的。

最后,如果使用单个中央数据库,请确保将日期保存为UTC时间而不是本地时间,否则将忽略数据之间的时区差异。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8117308

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档