Dela via


SQL Server-datatypmappningar

SQL Server och .NET Framework baseras på olika typsystem. Till exempel har .NET Framework-strukturen Decimal en maximal skalning på 28, medan SQL Server decimal- och numeriska datatyper har en maximal skala på 38. För att upprätthålla dataintegriteten vid läsning och skrivning av data exponerar SqlDataReader åtkomstmetoder specifika för SQL Server, som returnerar objekt av System.Data.SqlTypes, samt metoder som returnerar typer från .NET Framework. Både SQL Server-typer och .NET Framework-typer representeras också av uppräkningar i klasserna DbType och SqlDbType som du kan använda när du anger SqlParameter datatyper.

I följande tabell visas den härledda .NET Framework-typen, DbType och SqlDbType-uppräkningar, samt åtkomstmetoder för SqlDataReader.

SQL Server Database Engine-typ .NET Framework-typ SqlDbType-uppräkning SqlDataReader SqlTypes typad accessor DbType-uppräkning SqlDataReader med DbType-typad åtkomstmetod
Bigint Int64 BigInt GetSqlInt64 Int64 GetInt64
binär Byte[] VarBinary GetSqlBinary Binary GetBytes
lite grann Boolean Bit GetSqlBoolean Boolean GetBoolean
röding Sträng

Tecken[]
Char GetSqlString AnsiStringFixedLength,

String
GetString

GetChars
datum 1

(SQL Server 2008 och senare)
Datum/tid Date 1 GetSqlDateTime Date 1 GetDateTime
tidpunkt Datum/tid DateTime GetSqlDateTime DateTime GetDateTime
datumtid2

(SQL Server 2008 och senare)
Datum/tid DateTime2 Ingen DateTime2 GetDateTime
datetimeoffset

(SQL Server 2008 och senare)
DateTimeOffset (tidpunkt med tidsförskjutning) DateTimeOffset inget DateTimeOffset GetDateTimeOffset
decimaltecken Decimal Decimal GetSqlDecimal Decimal GetDecimal
FILESTREAM-attribut (varbinary(max)) Byte[] VarBinary GetSqlBytes Binary GetBytes
flyttal Dubbel Float GetSqlDouble Double GetDouble
bild Byte[] Binary GetSqlBinary Binary GetBytes
heltal Int32 Int GetSqlInt32 Int32 GetInt32
pengar Decimal Money GetSqlMoney Decimal GetDecimal
nchar Sträng

Tecken[]
NChar GetSqlString StringFixedLength GetString

GetChars
ntext Sträng

Char[]
NText GetSqlString String GetString

GetChars
numerisk Decimal Decimal GetSqlDecimal Decimal GetDecimal
nvarchar Sträng

Tecken[]
NVarChar GetSqlString String GetString

GetChars
verklig / äkta Enstaka Real GetSqlSingle Single GetFloat
rowversion Byte[] Timestamp GetSqlBinary Binary GetBytes
smalldatetime Datum/tid DateTime GetSqlDateTime DateTime GetDateTime
Smallint Int16 SmallInt GetSqlInt16 Int16 GetInt16
småpengar Decimal SmallMoney GetSqlMoney Decimal GetDecimal
sql_variant Objekt 2 Variant GetSqlValue 2 Object GetValue 2
texten Sträng

Tecken[]
Text GetSqlString String GetString

GetChars
Tid

(SQL Server 2008 och senare)
Tidsintervall Time inget Time GetTimeSpan
tidsstämpel Byte[] Timestamp GetSqlBinary Binary GetBytes
tinyint byte TinyInt GetSqlByte Byte GetByte
unik identifierare Guide UniqueIdentifier GetSqlGuid Guid GetGuid
varbinary Byte[] VarBinary GetSqlBinary Binary GetBytes
Varchar Sträng

Tecken[]
VarChar GetSqlString AnsiString, String GetString

GetChars
XML Xml Xml GetSqlXml Xml inget

1 Du kan inte ange DbType egenskapen för en SqlParameter till SqlDbType.Date.
2 Använd en specifik typad accessor om du känner till den underliggande typen av sql_variant.

Dokumentation om SQL Server

Mer information om SQL Server-datatyper finns i Datatyper (Transact-SQL).

Se även