SQL Server 数据类型映射
SQL Server 和 .NET Framework 基于不同的类型系统。 例如,.NET Framework 结构的最大小数位数为 28,而 SQL Server 的 decimal 和 numeric 数据类型的最大小数位数为 38。 为了在读取和写入数据时维护数据的完整性, 将公开用于返回 的对象的 SQL Server 特定的类型化访问器方法以及用于返回 .NET Framework 类型的访问器方法。 SQL Server 类型和 .NET Framework 类型也可通过 和 类中的枚举表示,当您指定 数据类型时可以使用这些枚举。
下表显示推断的 .NET Framework 类型、 和 枚举以及 的访问器方法。
SQL Server 数据库引擎类型 | .NET Framework 类型 | SqlDbType 枚举 | SqlDataReader SqlTypes 类型化访问器 | DbType 枚举 | SqlDataReader DbType 类型化访问器 |
---|---|---|---|---|---|
bigint | Int64 | ||||
binary | Byte[] | ||||
bit | Boolean | ||||
char | StringChar[] | , | |||
日期1(SQL Server 2008 及更高版本) | DateTime | 1 | 1 | ||
datetime | DateTime | ||||
datetime2(SQL Server 2008 及更高版本) | DateTime | 无 | |||
datetimeoffset(SQL Server 2008 及更高版本) | DateTimeOffset | 无 | |||
decimal | Decimal | ||||
FILESTREAM 特性 (varbinary(max)) | Byte[] | ||||
float | Double | ||||
图像 | Byte[] | ||||
int | Int32 | ||||
money | Decimal | ||||
nchar | StringChar[] | ||||
ntext | StringChar[] | ||||
数值 | Decimal | ||||
nvarchar | StringChar[] | ||||
实数 | Single | ||||
rowversion | Byte[] | ||||
smalldatetime | DateTime | ||||
smallint | Int16 | ||||
smallmoney | Decimal | ||||
sql_variant | 对象2 | 2 | 2 | ||
文本 | StringChar[] | ||||
时间(SQL Server 2008 及更高版本) | TimeSpan | 无 | |||
时间戳 | Byte[] | ||||
tinyint | Byte | ||||
uniqueidentifier | Guid | ||||
varbinary | Byte[] | ||||
varchar | StringChar[] | , | |||
xml | Xml | 无 |
1无法设置DbType
属性SqlParameter
到SqlDbType.Date
。
sql_variant
。 来源https://docs.microsoft.com/zh-cn/dotnet/framework/data/adonet/sql-server-data-type-mappings