Convert.ToDouble(rdr["value"])


当SQL Server中显示的值为75875563.7000000000000000000000时,引发“转换溢出”错误。



堆栈跟踪:

   at System.Data.SqlClient.SqlBuffer.get_Decimal()
   at System.Data.SqlClient.SqlBuffer.get_Value()
   at System.Data.SqlClient.SqlDataReader.GetValueFromSqlBufferInternal(SqlBuffer data, _SqlMetaData metaData)
   at System.Data.SqlClient.SqlDataReader.GetValueInternal(Int32 i)
   at System.Data.SqlClient.SqlDataReader.GetValue(Int32 i)
   at System.Data.SqlClient.SqlDataReader.get_Item(String name)
   at DataAPI.Models.Title.TitleDB.getTitlePerformance(Nullable`1 StartDate, Nullable`1 EndDate) in c:\00 BI Source\BIPortal\DataAPI\DataAPI\Models\Title\TitleDB.cs:line 44


有人可以给我一个线索,这是为什么吗?

最佳答案

这大约是十进制容量。您可以在SQL Server端使用十进制(16,4)(或您需要的某种精度)吗?十进制(16,4)表示16个字符,后跟4位数字,

关于c# - Convert.ToDouble()使用SqlDataReader值溢出,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23941401/

10-12 13:11