我在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数据库吗?我想知道这是否会有所帮助.
谢谢