c#oracle数组超出,c# – ODP.net填充数据集时的Oracle Decimal Number精度问题.异常:算术运算导致溢出...

在C#.NET 2.0中使用Oracle10g ODP.NET 2.102.2.20驱动时遇到数据集填充时的溢出异常。问题出在尝试将包含浮点数的列填充到数据集中。通过使用`GetOracleDecimal`方法而不是`GetValue`来读取该列的数据,可以避免错误并正确获取数据。通用方法的实现需要针对特定列的处理,可能需要对数据适配器的填充方式进行调整。
摘要由CSDN通过智能技术生成

我在c#.net 2(Visual Studio 2005 SP1)中工作,尝试使用来自Oracle10g数据库的select * from table的结果填充数据集. .net框架,IDE和数据库不能在此客户端站点更改.

我使用ODP.net提供商连接,dll版本是2.102.2.20

当我运行fill命令时,我得到一个例外:

算术运算导致溢出

另外,如果我尝试查看Visual Studio设计器中的违规列(显示表数据),我得到表中此列的每一行.如果我的查询使用整数选择其他列,例如省略此列,代码就会很好地工作.

当我从Toad的数据库中查看该列时,数据看起来像:

919.742866695572

我需要精确度,因为它需要一个蒙特卡罗模拟.

如果不使用数据适配器来填充datatable,我使用datareader并调用dataReader.getValue(columnIndex)我得到相同的错误,但是如果我调用dataReader.GetOracleDecimal(columnIndex),那么我得到我正在寻找的结果,没有错误.

我宁愿使用数据适配器和填充数据集(注意这些是非类型数据集,因为我无法使自动生成的强类型数据集从oracle数据库工作).我不想使用datareader并浏览结果(选出列值),因为我正在尝试将其写为通用方法,用于许多方案,无论列数如何,都需要具体的十进制列索引通过数据类型获取通话.

谁能帮忙?

可以使用新版本的ODP.net dll连接到旧的Oracle10g数据库吗?我想知道这是否会有所帮助.

谢谢

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值