【发布时间】:2013-10-14 10:43:09
【问题描述】:
我有一个定义为十进制 (32,15) 的 sql server 列。当我尝试使用 SqlDataReader.GetValue() 读取它时,我发现可以容纳的最大 db 值为 79,228,162,514,264。较大的值会引发溢出异常。这是令人惊讶的,因为 .net 十进制类型是 128 位并提供 28 到 29 位的精度。谁能解释一下?
【问题讨论】:
标签: .net sql-server decimal
我有一个定义为十进制 (32,15) 的 sql server 列。当我尝试使用 SqlDataReader.GetValue() 读取它时,我发现可以容纳的最大 db 值为 79,228,162,514,264。较大的值会引发溢出异常。这是令人惊讶的,因为 .net 十进制类型是 128 位并提供 28 到 29 位的精度。谁能解释一下?
【问题讨论】:
标签: .net sql-server decimal
使用SqlDataReader.GetSqlDecimal() 而不是SqlDataReader.GetValue()。
这里是一个详细的问题示例:
【讨论】:
这也有效:SqlDataReader.GetProviderSpecificValue()
【讨论】: