SQL Server 数据类型与.Net Framework平台映射

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 

图像

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 

数值

Decimal

Decimal 

GetSqlDecimal 

Decimal  

GetDecimal 

nvarchar

String

Char[]

NVarChar 

GetSqlString 

String 

GetString 

GetChars 

实数

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 

GetSqlMoney

Decimal 

GetDecimal 

sql_variant

Object*

Variant 

GetSqlValue *

Object 

GetValue *

文本

String

Char[]

Text 

GetSqlString 

String

GetString 

GetChars 

时间

(SQL Server 2008 及更高版本)

TimeSpan

Time 

无

Time 

GetDateTime 

时间戳

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 

无

posted @ 2017-04-27 16:27  钱恩基  阅读(295)  评论(0)    收藏  举报