asp.net - 实际区域性与 SQL 到 CLR float-double 转换相关吗?

标签 asp.net .net sql-server clr

我正在开发 ASP.Net WebForms 遗留应用程序,我需要在其中改进一项新功能。我正在使用生成的数据集(使用 VS 2013)来弥合 ReportViewer 和 SQL Server(本地报告,rdlc)之间的差距。

一切都运行良好,除了一件事:浮点转换。在两个 Windows 8.1 En_US 系统上,-10.5(列中的值之一)在报告中显示为 -10.5,但在服务器 (Win 7 SP1 Es_CO) 上,即使查询 在服务器的本地 SQL 实例上返回 -10.5。

我已经检查了数据集的生成代码,它将数据行中的一个对象直接转换为 double,因此我假设 SQL Server 已经处理了转换(通过每列上的 CAST 指令)

我能做点什么吗?值得一提的是,所有对服务器(Win7机器)的请求都来自一台Win8.1 En_US机器。

状态更新: 我暗示(不完全确定)错误在于从 SQL 到 CLR 类型的转换,因为将报告列标记为 String 会产生相同的结果。

最佳答案

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

我们遇到了类似的问题,当值被序列化和反序列化时,带有小数位的值(例如“10.5”变成了“105”,而没有足够注意区域设置)。例如,如果您用德语解析“10.5”,它会将“.”解释为千位分隔符,并忽略它,给出结果“105”。我猜这在 es-CO 中是相同的。

关于asp.net - 实际区域性与 SQL 到 CLR float-double 转换相关吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21634432/

相关文章:

c# - 我可以使用 PrincipalContext() 从 Active Directory 获取用户部门吗

c# - List<Point> 类型的 NHibernate 映射

c# - 从 Xbap 打开新页面

sql-server - Azure SQL 在处理多行时非常慢

SQL 查询 GETGATE() 和 DATEPART 格式

c# - 在重写的 void 中运行异步方法

javascript - ASP :Button in jQuery dialog box not firing OnClick event

asp.net - WCF 服务在/js 请求上返回错误 500

C# 最快的双向字符串缩短

java - SQOOP SQLSERVER 无法加载驱动程序 "appropriate connection manager is not being set"