将 .NET 类型映射到 SQL Server 200 数据类型
Posted
技术标签:
【中文标题】将 .NET 类型映射到 SQL Server 200 数据类型【英文标题】:map .NET types to SQL Server 200 data types 【发布时间】:2011-10-06 08:09:52 【问题描述】:如何将 .NET double 存储在 SQL Server 2008 数据类型中?
当我尝试在 numeric(16, 16) 列中存储双精度时,出现异常“参数值 '1.3465492655247000' 超出范围”。因为这个数字有16位小数,前面有一个1。 numeric(16.16) 是我可以在 SQL Server 中为该类型设置的最大值。
我在 C# 中创建了一个 ADO.NET 数据集,并且该列设置为十进制。 我将双精度数转换为小数。
此site 显示 SQL Server 2008 数据类型
【问题讨论】:
【参考方案1】:numeric(16, 16)
允许长度为 16 的数字,所有 16 位保留用于小数点后的数字。
您可以转到numeric(38, 16)
。这将允许小数点左边最多 22 位,右边最多 16 位。
这并不完全允许±1.0 × 10^28 to ±7.9 × 10^28
的全部范围。如果您需要这么大的数字,则需要减少为小数位保留的位数。
【讨论】:
SQL Server Data Type Mappings (ADO.NET)以上是关于将 .NET 类型映射到 SQL Server 200 数据类型的主要内容,如果未能解决你的问题,请参考以下文章
是否可以使用实体框架将 SQL Server 的 rowversion 类型映射到比 byte[] 更友好的东西?
实体框架将 DateTimeOffset 映射到 SQL Server DateTime
如何首先在EF代码中映射Sql server的文本字段类型? [复制]
什么 MS SQL Server 类型映射到 Types.VARCHAR
如何使用 Oracle 和 SQL Server 将 .NET 4.5 C# Entity Framework 6 中的列映射为大写?