微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

asp.net – 实际文化是否与SQL相关联到CLR float-double转换?

我正在开发一个ASP.Net WebForms的遗留应用程序,我需要改进一个新的功能.我正在使用生成的DataSet(使用VS 2013)弥补ReportViewer和sql Server(本地报告,rdlc)之间的差距.

一切都很好,除了一件事:浮动转换.在两个Windows 8.1 En_US系统上,-10.5(列中的一个值)在报表上看起来为-10.5,但在服务器(Win 7 SP1 Es_CO)上显示为-105,即使查询返回-10.5服务器的本地sql实例.

我检查了生成的数据集的代码,并将数据行中的对象直接转换为双,因此我假设sql Server已经处理了会话(通过每列的CAST指令)

有什么可以做的吗?值得一提的是所有的服务器请求(Win7机器)都来自一台Win8.1 En_US机器.

状态更新:
我已暗示(不完全确定)故障是从sql转换为CLR类型,因为标记为String的报表列产生相同的结果.

解决方法

我想知道DataSet中的列的类型是什么,并跟踪它直到它到达报表. Web服务器与数据库位于同一机器上,还是在不同的服务器上?也许你使用WCF在两者之间传输DataSet.还要检查设计器中的报告的区域设置(查看属性)以及报告中该字段正在使用的数据类型(我刚刚在RDLC文件的XML中).

我们有一个类似的问题,当值被序列化和反序列化时,小数位值(如“10.5”)变为“105”,没有足够重视语言环境,例如,如果用德语解析“10.5”,它会解释“.”作为一个千分之一的分隔符,忽略它,给你的结果“105”,我猜在es-CO中是一样的.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐