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 类型也可通过 DbTypeSqlDbType 类中的枚举表示,当您指定 SqlParameter 数据类型时可以使用这些枚举。  

下表显示推断的 .NET Framework 类型、DbTypeSqlDbType 枚举以及 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  钱恩基  阅读(259)  评论(0编辑  收藏  举报