前天完成了手头的工作后,经理交给我一个bug让我看下,我接过后看了下Bug信息,是从未见过的异常,但根据异常信息提示又很容易判断出异常原因。
异常信息:传入的表格格式数据流(TDS)远程过程调用(RPC)协议流不正确。参数 7 ("@ExchangeRate"): 提供的值不是数据类型 float 的有效实例。请检查源数据中的无效值。例如,小数位数大于精度的数值类型的数据即为无效值。
从信息提示看,我判断是数据类型溢出造成的,因为程序中用double类型来对应数据库的float类型,由此可能导致插入出现溢出。但试验了几次,均没有重现那个异常,所以很是奇怪。在google一把后,发现关于这个异常的资料很少,而且没有相关的解决办法。MSDN网站倒是有一篇传入的表格格式数据流(TDS)远程过程调用(RPC)协议流不正确。的文章,但跟我这个貌似没什么关系。那篇文章介绍说这个异常是JDBC驱动版本导致的,而我的程序没有使用JDBC。为此我在MSDN社区发了帖子,一天过去了,浏览的人不少,但没一个留言的,可能都没遇到过吧。哪位看见我这篇文章的牛人遇到过这种情况,希望能讨论一下,共同解决这个问题。假如我先解决了这个问题,我也会将解决办法发布到这里!