Server Error in '/' Application.将 expression 转换为数据类型 int 时发生算术溢出错误。
今天系统中遇到了一个奇怪的问题,一时摸不着头脑,找不出问题出在哪里?
前几天没问题,近几天也没做什么改动,突然今天报了个错误,打开页面就报了这个错误:
将 expression 转换为数据类型 int 时发生算术
溢出错误。
今天总算解决了这个心病
,和大家分享下我的解决方法:
暂时的解决方法:
这个问题是由于数据超大而引起的,那么当然要想办法把查询的SQL改下,考虑能不能将查询的数据转化下,
转化程比Int 类型存储范围大的数据类型,由于系统里其它的数据都是decimal(18,2)类型的,所以为了汇总时
同时兼容与其它数据的计算,用SQLSERVER的Cast函数解决了这个问题,将原来的Sum(字段名) 改为:
Sum(Cast(字段名 as decimal(18,2))) 这样,18位的2位小数精度足够用了吧,在本地服务器上测试了下:
ok,问题解决, 。当然这只是个临时的解决方法,彻底解决这个问题还是要调整数据库将字段由Int型调整为Decimal型,
(由于系统很多客户在使用因此不能改动数据库,暂时采用这种解决方法,等到系统升级时还是进行数据类型的调整彻底解决这个问题)
。
