在解决客户问题时,发现客户环境上使用SqlCommand.ExecuteReader方法返回的SqlDataReader中所有的小数点都被标记为逗号,而且日期格式为16/10/2015这样的欧美格式,客户环境是SERVER2008R2,数据库为英文版本操作系统SQL2008,有谁遇到过这种情况吗,怎么解决让小数点变为逗号?
时间输出呈现要统一,最保险做法强制转化string类型并时间格式
多谢回复!
时间格式我尚可接受,主要是小数点的问题无法接受,会导致数值错误,当调用SqlCommand.ExecuteReader方法返回的SqlDataReader中decimal类型或者float类型的数在不同的环境下,小数点不一致,例如同样的一个数据库存储字段1232.3900,在环境一下,返回1,232.39,在环境二下,返回了1,232,39,这就没有固定的规则转换了。环境二下的值被放大了100倍。
设置系统的时间format
多谢回复,您指的是在操作系统设置,还是在代码里做format?
系统设置里面确实有显示日期格式和小数点显示为逗号或者点号的配置,但是我更改之后并未起作用,我现在怀疑是由于.NET库函数System.Data.dll中的方法例如SqlCommand.ExecuteReader()是否有控制多语言的参数,来控制SqlDataReader中小数点的格式?我替换了客户系统盘下的.NETFrameWork文件夹下V2.0中的System.Data.dll,返回结果依旧。
所有的小数点变成都好,这句话,你没说清楚。varchar类型也这样?针对什么类型嘛,说清楚点吧。
多谢回复!
小数点的问题无法接受,也没有遇到过这样的问题,会导致数值错误,当调用SqlCommand.ExecuteReader方法返回的SqlDataReader中decimal类型或者float类型的数在不同的环境下,小数点不一致,例如同样的一个数据库表A中有一个存储字段金额1232.3900,在环境一下,返回值为1,232.39,在环境二下,返回了1,232,39,这就没有固定的规则转换了。环境二下的值被放大了100倍。
@紫风之韵: 金额的话,一般用decimal(18,2)就够了。
@紫风之韵: 得到的数据,在是object的时候,你用。Convert转换一下,然后ToString到指定位数也就不会有你说的问题了吧?跟语言有关系,应该也不得影响吧。