实际文化是否与SQL转换为CLR浮点转换?

Mac*_*ius 13 .net sql-server asp.net clr

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

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

我已经检查了生成的数据集代码,它将数据行中的对象直接转换为double,所以我假设SQL服务器已经处理了转换(通过每列的CAST指令)

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

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

Ami*_*mit 0

这种情况出现在跨语言场景中,其中您的 UI 线程文化与处理线程或服务器线程不同。仅在 UI 上显示时,将数据从 UI 传递到服务器到 SQL 并格式化时,使用一致的 Cultureinfo.InvariantCulture。

另一项建议是在 SQL 末尾使用十进制。

希望这可以帮助。