SQL Server-datatypsmappningar

Gäller för: .NET Framework .NET .NET Standard

Ladda ned ADO.NET

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 den dataintegriteten vid läsning och skrivning av data exponerar SqlDataReader SQL Server-specifika typåtkomstmetoder som returnerar objekt av System.Data.SqlTypes och åtkomstmetoder som returnerar .NET Framework-typer. 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 enumeringar, samt åtkomstmetoderna för SqlDataReader.

Databasmotor för SQL Server-typ .NET Framework-typ SqlDbType-uppräkning SqlDataReader SqlTypes typad accessor DbType-uppräkning SqlDataReader 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 String

Tecken[]
Char GetSqlString AnsiStringFixedLength.

String
GetString

GetChars
datum 1

(SQL Server 2008 och senare)
DateTime Date 1 GetSqlDateTime Date 1 GetDateTime
tidpunkt DateTime DateTime GetSqlDateTime DateTime GetDateTime
datetime2

(SQL Server 2008 och senare)
DateTime DateTime2 None DateTime2 GetDateTime
datetimeoffset

(SQL Server 2008 och senare)
DateTimeOffset DateTimeOffset none DateTimeOffset GetDateTimeOffset
decimal Decimal Decimal GetSqlDecimal Decimal GetDecimal
FILESTREAM-attribut (varbinary(max)) Byte[] VarBinary GetSqlBytes Binary GetBytes
flyta/sväva Double Float GetSqlDouble Double GetDouble
image Byte[] Binary GetSqlBinary Binary GetBytes
int Int32 Int GetSqlInt32 Int32 GetInt32
pengar Decimal Money GetSqlMoney Decimal GetDecimal
nchar String

Tecken[]
NChar GetSqlString StringFixedLength GetString

GetChars
ntext String

Tecken[]
NText GetSqlString String GetString

GetChars
numerisk Decimal Decimal GetSqlDecimal Decimal GetDecimal
nvarchar String

Tecken[]
NVarChar GetSqlString String GetString

GetChars
verklig / äkta Single Real GetSqlSingle Single GetFloat
rowversion Byte[] Timestamp GetSqlBinary Binary GetBytes
smalldatetime DateTime 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 String

Tecken[]
Text GetSqlString String GetString

GetChars
time

(SQL Server 2008 och senare)
TimeSpan Time none Time GetDateTime
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 String

Tecken[]
VarChar GetSqlString AnsiString, String GetString

GetChars
xml Xml Xml GetSqlXml Xml none
json String Json GetSqlJson none none
vektor none Vector GetSqlVector none none

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.

SQL Server-dokumentation

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