SQL Server 数据类型映射

SQL Server 和 .NET Framework 基于不同的类型系统。 例如,.NET Framework Decimal 结构的最大小数位数为 28,而 SQL Server 的 decimal 和 numeric 数据类型的最大小数位数为 38。 为了在读取和写入数据时维护数据的完整性,SqlDataReader 将公开用于返回 System.Data.SqlTypes 的对象的 SQL Server 特定的类型化访问器方法以及用于返回 .NET Framework 类型的访问器方法。 SQL Server 类型和 .NET Framework 类型也可通过 DbType 和 SqlDbType 类中的枚举表示,当您指定 SqlParameter 数据类型时可以使用这些枚举。
下表显示推断的 .NET Framework 类型、DbType 和 SqlDbType 枚举以及 SqlDataReader 的访问器方法。

SQL Server 数据库引擎类型

.NET Framework 类型

SqlDbType 枚举

SqlDataReader SqlTypes 类型化访问器

DbType 枚举

SqlDataReader DbType 类型化访问器

bigint

Int64                                   

BigInt

GetSqlInt64

Int64                                   

GetInt64                                   

binary      

Byte[]                                   

VarBinary

GetSqlBinary

Binary                                   

GetBytes                                   

bit

Boolean                                   

Bit              

GetSqlBoolean

Boolean                                   

GetBoolean                                   

char

String                                   

Char[]                                   

Char                                   

GetSqlString

AnsiStringFixedLength, 

String                                   

GetString                                   

GetChars                                   

date

(SQL Server 2008 及以上版本)                                   

DateTime                                   

Date                                   

GetSqlDateTime

Date                                   

GetDateTime                                   

datetime                                   

DateTime                                   

DateTime                                   

GetSqlDateTime

DateTime                                   

GetDateTime                                   

datetime2                                   

(SQL Server 2008 及以上版本)                                   

DateTime                                   

DateTime2                                   

                                   

DateTime2                                   

GetDateTime                                   

datetimeoffset                                   

(SQL Server 2008 及以上版本)                                   

DateTimeOffset                                   

DateTimeOffset                                   

                                   

DateTimeOffset                                   

GetDateTimeOffset                                   

decimal                                   

Decimal                                   

Decimal                                   

GetSqlDecimal                                   

Decimal                                   

GetDecimal                                   

FILESTREAM 属性 (varbinary(max))                                   

Byte[]                                   

VarBinary                                   

GetSqlBytes                                   

Binary                                   

GetBytes                                   

float                                   

Double                                   

Float                                   

GetSqlDouble                                   

Double                                   

GetDouble                                   

image                                   

Byte[]                                   

Binary                                   

GetSqlBinary                                   

Binary                                   

GetBytes                                   

int                                   

Int32                                   

Int                                   

GetSqlInt32                                   

Int32                                   

GetInt32                                   

money                                   

Decimal                                   

Money                                   

GetSqlMoney                                   

Decimal                                   

GetDecimal                                   

nchar                                   

String                                   

Char[]                                   

NChar                                   

GetSqlString                                   

StringFixedLength                                   

GetString                                   

GetChars                                   

ntext                                   

String                                   

Char[]                                   

NText                                   

GetSqlString                                   

String                                   

GetString                                   

GetChars                                   

numeric                                   

Decimal                                   

Decimal                                   

GetSqlDecimal                                   

Decimal                                   

GetDecimal                                   

nvarchar                                   

String                                   

Char[]                                   

NVarChar                                   

GetSqlString                                   

String                                   

GetString                                   

GetChars                                   

real                                   

Single                                   

Real                                   

GetSqlSingle                                   

Single                                   

GetFloat                                   

rowversion                                   

Byte[]                                   

Timestamp                                   

GetSqlBinary                                   

Binary                                   

GetBytes                                   

smalldatetime                                   

DateTime                                   

DateTime                                   

GetSqlDateTime                                   

DateTime                                   

GetDateTime                                   

smallint                                   

Int16                                   

SmallInt                                   

GetSqlInt16                                   

Int16                                   

GetInt16                                   

smallmoney                                   

Decimal                                   

SmallMoney                                   

GetSqlDecimal                                   

Decimal                                   

GetDecimal                                   

sql_variant                                   

Object*                                   

Variant                                   

GetSqlValue   *                                   

Object                                   

GetValue   *                                   

text                                   

String                                   

Char[]                                   

Text                                   

GetSqlString                                   

String                                   

GetString                                   

GetChars                                   

时间

(SQL Server 2008 及以上版本)                                   

TimeSpan                                   

Time                                   

                                   

Time                                   

GetDateTime                                   

timestamp                                   

Byte[]                                   

Timestamp                                   

GetSqlBinary                                   

Binary                                   

GetBytes                                   

tinyint                                   

Byte                                   

TinyInt                                   

GetSqlByte                                   

Byte                                   

GetByte                                   

uniqueidentifier                                   

Guid                                   

UniqueIdentifier                                   

GetSqlGuid                                   

Guid                                   

GetGuid                                   

varbinary                                   

Byte[]                                   

VarBinary                                   

GetSqlBinary                                   

Binary                                   

GetBytes                                   

varchar                                   

String                                   

Char[]                                   

VarChar                                   

GetSqlString                                   

AnsiString   ,String                                   

GetString                                   

GetChars                                   

xml                                   

Xml                                   

Xml                                   

GetSqlXml                                   

Xml                                   

                  

* 如果已知 sql_variant 的基础类型,则使用特定的类型化访问器。          

原文地址:https://www.cnblogs.com/SALIN/p/1680979.html