为什么在ADO.NET中,将数字转换为数据类型的数字时,会出现算术溢出错误?

1 人关注

为什么在ADO.NET代码中使用Money数据类型时,当金额大于999,999,99美元时,将数字转换为数据类型的数字会出现算术溢出错误?

就像问题所说的...我在数据访问层有一段ADO.net代码,与Sql Server 2008数据库对话。 表中有一个数据类型为 "钱 "的金额列。 当插入一条金额<$1,000,000的记录时,代码工作正常,但当金额>=$1,000,000时,会出现这个错误。

"将数字转换为数据类型数字的算术溢出错误"

我可以对数据库手动运行t-sql,将金额更新为大于100万美元的值,这样数据库就可以除掉这个金额了......下面的SqlCommand是什么原因导致错误发生的?

        MyCommand.Parameters.Add(New SqlParameter("@Amount", SqlDbType.Money))
        If IsNothing(Amount) Then
            MyCommand.Parameters("@Amount").Value = Convert.DBNull