アプリに次のコード行があります。
packsize.CompanyPrice = (decimal)Reader["CompanyPrice"];
しかし、それはエラーを発生させますwhen casting from a number, the value must be a number less than infinity
データベースのデータ型を double に設定しましたが、アプリでは 10 進数です。それはこの問題を引き起こしますか?
または、ここに何かがありませんか??
アプリに次のコード行があります。
packsize.CompanyPrice = (decimal)Reader["CompanyPrice"];
しかし、それはエラーを発生させますwhen casting from a number, the value must be a number less than infinity
データベースのデータ型を double に設定しましたが、アプリでは 10 進数です。それはこの問題を引き起こしますか?
または、ここに何かがありませんか??
DBNull値をキャストしようとしているため、エラーが発生していると思います
Reader["CompanyPrice"]のチェックを追加できる場合は良いDBNull
if(Reader["CompanyPrice"] != DBNull.Value)
{
}
このようなものはあなたの問題を再現することができます
object obj = DBNull.Value;
decimal somdec = (decimal)obj; // Specified cast is not valid
編集
ダブルのボックス表現の場合は、ダブルにキャストバックしてから、10進数にキャストする必要があります。
Reader["CompanyPrice"] は、値が無限大または推測している NaN を返します。int.MaxValue または decimal.MaxValue に設定します
32 ビット整数のキャスト (10 進数) の前に、Reader["CompanyPrice"] の値をクランプしてみてください。最小値は -2147483648、最大値は 2147483647 です。