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                                   

String                                   

GetString                                   

GetChars                                   

xml                                   

Xml                                   

Xml                                   

GetSqlXml                                   

Xml                                   

无                  

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

相关文章:

  • 2021-12-25
  • 2022-12-23
  • 2021-05-16
  • 2021-08-15
  • 2021-12-07
  • 2021-12-19
  • 2021-05-15
猜你喜欢
  • 2021-12-11
  • 2022-12-23
  • 2022-02-05
  • 2021-12-19
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案