Partager via


Mappages de types de données SQL Server

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.

La table suivante indique le type de .NET Framework déduit, les énumérations de DbType et de SqlDbType, ainsi que les méthodes d’accesseurs pour SqlDataReader.

Type de 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
binaire Octet[] VarBinary GetSqlBinary Binary GetBytes
mors Booléen Bit GetSqlBoolean Boolean GetBoolean
car Chaîne

Char[]
Char GetSqlString AnsiStringFixedLength,

String
GetString

GetChars
date 1

(SQL Server 2008 et versions ultérieures)
Date/Heure Date 1 GetSqlDateTime Date 1 GetDateTime
DATETIME Date/Heure DateTime GetSqlDateTime DateTime GetDateTime
datetime2

(SQL Server 2008 et versions ultérieures)
Date/Heure DateTime2 Aucun DateTime2 GetDateTime
datetimeoffset

(SQL Server 2008 et versions ultérieures)
DateTimeOffset DateTimeOffset Aucun DateTimeOffset GetDateTimeOffset
Décimal Décimal Decimal GetSqlDecimal Decimal GetDecimal
Attribut FILESTREAM (varbinary(max)) Octet[] VarBinary GetSqlBytes Binary GetBytes
flotter Double Float GetSqlDouble Double GetDouble
image Octet[] Binary GetSqlBinary Binary GetBytes
Int Int32 Int GetSqlInt32 Int32 GetInt32
argent Décimal Money GetSqlMoney Decimal GetDecimal
NCHAR Chaîne

Char[]
NChar GetSqlString StringFixedLength GetString

GetChars
ntext Chaîne

Char[]
NText GetSqlString String GetString

GetChars
numérique Décimal Decimal GetSqlDecimal Decimal GetDecimal
NVARCHAR Chaîne

Char[]
NVarChar GetSqlString String GetString

GetChars
réel Unique Real GetSqlSingle Single GetFloat
rowversion Octet[] Timestamp GetSqlBinary Binary GetBytes
smalldatetime Date/Heure DateTime GetSqlDateTime DateTime GetDateTime
SMALLINT Int16 SmallInt GetSqlInt16 Int16 GetInt16
SMALLMONEY Décimal SmallMoney GetSqlMoney Decimal GetDecimal
sql_variant Objet 2 Variant GetSqlValue 2 Object GetValue 2
texte Chaîne

Char[]
Text GetSqlString String GetString

GetChars
heure

(SQL Server 2008 et versions ultérieures)
TimeSpan Time Aucun Time GetTimeSpan
horodatage Octet[] Timestamp GetSqlBinary Binary GetBytes
TINYINT Octet TinyInt GetSqlByte Byte GetByte
UNIQUEIDENTIFIER Guide UniqueIdentifier GetSqlGuid Guid GetGuid
varbinary Octet[] VarBinary GetSqlBinary Binary GetBytes
varchar Chaîne

Char[]
VarChar GetSqlString AnsiString, String GetString

GetChars
Xml Xml Xml GetSqlXml Xml Aucun

1 Vous ne pouvez pas définir la propriété DbType d’un SqlParameter sur SqlDbType.Date.
2 Utilisez un accesseur typé spécifique si vous connaissez le type sous-jacent de sql_variant.

documentation SQL Server

Pour plus d’informations sur les types de données SQL Server, consultez Types de données (Transact-SQL).

Voir aussi