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 SqlDataReader exponerar SQL Server-specifika typspecifika åtkomstmetoder som returnerar objekt av System.Data.SqlTypes samt accessormetoder 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 uppräkningar och SqlDbType åtkomstmetoder för SqlDataReader.

SQL Server Database Engine-typ .NET Framework-typ SqlDbType-uppräkning SqlDataReader SqlTypes-typad accessor DbType-uppräkning SqlDataReader DbType-typad accessor
bigint Int64 BigInt GetSqlInt64 Int64 GetInt64
binary Byte[] VarBinary GetSqlBinary Binary GetBytes
bit Booleskt Bit GetSqlBoolean Boolean GetBoolean
char String

Tecken[]
Char GetSqlString AnsiStringFixedLength,

String
GetString

GetChars
datum 1

(SQL Server 2008 och senare)
Datum/tid Date1 GetSqlDateTime Date1 GetDateTime
datetime Datum/tid DateTime GetSqlDateTime DateTime GetDateTime
datetime2

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

(SQL Server 2008 och senare)
DateTimeOffset DateTimeOffset inget DateTimeOffset GetDateTimeOffset
decimal 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
money Decimal Money GetSqlMoney Decimal GetDecimal
nchar String

Tecken[]
NChar GetSqlString StringFixedLength GetString

GetChars
ntext String

Tecken[]
NText GetSqlString String GetString

GetChars
numeric Decimal Decimal GetSqlDecimal Decimal GetDecimal
nvarchar String

Tecken[]
NVarChar GetSqlString String GetString

GetChars
real Enstaka Real GetSqlSingle Single GetFloat
rowversion Byte[] Timestamp GetSqlBinary Binary GetBytes
smalldatetime Datum/tid DateTime GetSqlDateTime DateTime GetDateTime
smallint Int16 SmallInt GetSqlInt16 Int16 GetInt16
smallmoney Decimal SmallMoney GetSqlMoney Decimal GetDecimal
sql_variant Objekt 2 Variant GetSqlValue 2 Object GetValue 2
text String

Tecken[]
Text GetSqlString String GetString

GetChars
time

(SQL Server 2008 och senare)
TimeSpan Time inget Time GetTimeSpan
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

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