.net - 从数据库读取十进制值时出现 OverflowException

标签 .net sql-server decimal

我有一个定义为decimal(32,15)的sql server列。当我尝试使用SqlDataReader.GetValue()读取它时,我发现可以容纳的最大db值是79,228,162,514,264。较大的值会引发溢出异常。这是令人惊讶的,因为 .net 十进制类型是 128 位,并提供 28 到 29 位的精度。有人可以解释一下吗?

最佳答案

使用SqlDataReader.GetSqlDecimal()而不是SqlDataReader.GetValue()

以下是问题的详细示例:

http://weblogs.sqlteam.com/mladenp/archive/2010/08/31/when-does-sql-server-decimal-not-convert-to-net-decimal.aspx

关于.net - 从数据库读取十进制值时出现 OverflowException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19231957/

相关文章:

c# - 从代码隐藏中获取重写的 url

c# - 屏幕截图中未捕获对话框和菜单更改

sql-server - SQL Server 报表生成器 : how to obtain SUM(Value) of each group

r - 如何在 R Shiny 的数据表中始终显示 3 位小数?

c# - StringFormat 中的百分比

c# - ASP Core Minimal API - 如何使用 System.Text.Json 发送不带尾随零的小数?

c# - 在 .net Windows 服务中处理停止

.net - 将 Windows 服务移植到 Windows Azure

mysql - SQL 连接中的多个条件

mysql - 左连接查询和 select 计数在 MySQL 中有效,但在 MS SQL Server 2012 中无效