Convert.ToDouble()溢出SqlDataReader值

时间:2014-05-29 19:26:29

标签: c# sqldatareader

Convert.ToDouble(rdr["value"]) 

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

enter image description here

堆栈追踪:

   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

有人能告诉我为什么会这样吗?

1 个答案:

答案 0 :(得分:2)

这是关于十进制容量。你可以在sql server端使用decimal(16,4)(或者你需要一些精度)吗?十进制(16,4)表示16个字符,后面有4个数字,