asp.net core中把sql server2016中的取出的数据格式string转decimal,部分行的数据报错。
sql server2016中的数据是由mysql通过navicat转存过来的。连接mysql时这些数据可以正常转化。
把出错的数据在sql server2016中手动输入一下就又可以正常转化了。
可以确定这个问题是因为navicat转存时产生的吗?
decimal.tryparse
就是使用decimal.tryparse转换时报错,还不是全部报错,只是一部份数据报错。从mysql取出时就不会报错
@罗伯特·福特: 报错的记录都存起来.找出为什么报错.然后解决.
@吴瑞祥:
System.FormatException: Input string was not in a correct format. at System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal) at System.Number.ParseDecimal(String value, NumberStyles options, NumberFormatInfo numfmt) at System.Convert.ToDecimal(String value)
报错后去数据库手工输入一下,原数据就能转换。要是每个数据都修改量太大了。
@罗伯特·福特: 所以要找出字符串的问题....
比如前后空格.小数点格式.不是让你记异常.是让你记出错的字符串.
给微软提BUG,core早着呢