Cette documentation est archivée et n’est pas conservée.

Mappages de types de données SQL Server (ADO.NET)

Mise à jour : November 2007

SQL Server et le .NET Framework sont basés sur des systèmes de types différents. Par exemple, la structure Decimal du .NET Framework a une échelle maximale de 28, tandis que l'échelle maximale des types de données décimal et numérique de SQL Server est de 38. Pour préserver l'intégrité des données lors des opérations de lecture et d'écriture, le SqlDataReader expose des méthodes d'accesseur typé spécifiques à SQL Server qui retournent des objets de System.Data.SqlTypes, ainsi que des méthodes d'accesseur qui retournent des types .NET Framework. Les types SQL Server et les types .NET Framework sont également représentés par des énumérations dans les classes DbType et SqlDbType, que vous pouvez utiliser pour spécifier des types de données SqlParameter.

Le tableau suivant répertorie le type .NET Framework déduit, les énumérations DbType et SqlDbType, ainsi que les méthodes d'accesseur pour le SqlDataReader.

Type du moteur de base de données SQL Server

.Type .NET Framework

Énumération SqlDbType

Accesseur typé SqlTypes SqlDataReader

Énumération DbType

Accesseur typé DbType SqlDataReader

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 uniquement)

DateTime

Date

GetSqlDateTime

Date

GetDateTime

datetime

DateTime

DateTime

GetSqlDateTime

DateTime

GetDateTime

datetime2

(SQL Server 2008 uniquement)

DateTime2

DateTime2

GetSqlDateTime

DateTime2

GetDateTime

datetimeoffset

(SQL Server 2008 uniquement)

DateTimeOffset

DateTimeOffset

aucun

DateTimeOffset

GetDateTimeOffset

decimal

Decimal

Decimal

GetSqlDecimal

Decimal

GetDecimal

Attribut 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

time

(SQL Server 2008 uniquement)

TimeSpan

Time

aucun

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

aucun

* Utilisez un accesseur typé spécifique si vous connaissez le type sous-jacent de sql_variant.

Pour plus d'informations sur les types de données SQL Server, consultez la documentation en ligne de SQL Server correspondant à la version que vous utilisez.

Afficher: