You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VB.NET中如何使用SuppressGetDecimalInvalidCastException解决Oracle数据转换异常

VB.NET读取Oracle数据时"指定的转换无效"错误处理

我使用VB.NET从Oracle数据库获取数据,简化代码如下:

strQuery = "Select 2.3, 2.3/1, 2.3/3.1 From Owner.TableName Where ROWNUM < 10"
Dim da As OracleDataAdapter
da = New OracleDataAdapter(strQuery, ConnectionString)
da.Fill(GetData)

执行时出现**"指定的转换无效"**错误,经排查是2.3/3.1这一计算语句导致的。

从相关技术资料了解到,该问题源于Oracle数值精度高于.NET能处理的范围,解决方案是在OracleDataAdapter中启用SuppressGetDecimalInvalidCastException属性,但实际操作中遇到以下问题:

  • 自动转换的C#代码报错:CS0117: OracleDataAdapter不包含SuppressGetDecimalInvalidCastException的定义
  • 按建议编写的VB代码同样报错:BC30456: SuppressGetDecimalInvalidCastException不是'OracleDataAdapter'的成员
    VB代码示例:
Dim table = New DataTable()
Dim connection = New OracleConnection(ConnectionString)
Dim cmd = New OracleCommand(strQuery, connection)
Dim adapter = New OracleDataAdapter(cmd) With {.SuppressGetDecimalInvalidCastException = True}
adapter.Fill(GetData) 

补充信息:当前使用的是Oracle.ManagedDataAccess 19.6版本,无法安装21.9.0版本,提示该包与.NET Framework 4.5不兼容。

内容的提问来源于stack exchange,提问作者lvdp

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 00:01:28