元の質問:
金額が$999,999,99を超える場合、Moneyデータ型を使用してADO.NETコードで数値をデータ型数値に変換する算術オーバーフローエラーが発生するのはなぜですか?
質問にあるように...データアクセス層に、SQLServer2008データベースと通信するADO.netコードが少しあります。テーブルには、データ型が「Money」のAmount列があります。金額が$1,000,000未満のレコードを挿入する場合、コードは正常に機能しますが、金額が$1,000,000を超える場合はこのエラーがスローされます。
「数値をデータ型数値に変換する際の算術オーバーフローエラー」
データベースに対して手動でt-sqlを実行し、金額を$ 1,000,000より大きい値に更新して、データベースが金額を細かく除外できるようにすることができます...エラーを発生させる次のSqlCommandについてはどうでしょうか。
MyCommand.Parameters.Add(New SqlParameter("@Amount", SqlDbType.Money))
If IsNothing(Amount) Then
MyCommand.Parameters("@Amount").Value = Convert.DBNull
Else
MyCommand.Parameters("@Amount").Value = Amount
End If