SQL Server-Datentypmappings (ADO.NET)

Aktualisiert: November 2007

SQL Server und .NET Framework basieren auf unterschiedlichen Typsystemen. Die Decimal-Struktur von .NET Framework hat eine maximale Skalierung von 28, die dezimalen und numerischen Datentypen von SQL Server haben hingegen eine maximale Skalierung von 38. Um die Integrität beim Lesen und Schreiben von Daten zu gewährleisten, stellt der SqlDataReader Accessormethoden für SQL Server-spezifische Typen zur Verfügung, die Objekte als System.Data.SqlTypes zurückgeben. Zusätzlich werden Accessormethoden zum Zurückgeben von .NET Framework-Typen zur Verfügung gestellt. Sowohl die SQL Server- als auch die .NET Framework-Typen werden weiterhin als Enumerationen in der DbType-Klasse und SqlDbTypeKlasse dargestellt, die zum Angeben von SqlParameter-Datentypen verwendet werden können.

In der folgenden Tabelle werden der abgeleitete .NET Framework-Typ, die Enumerationen von DbType und SqlDbType sowie die Accessormethoden für den SqlDataReader dargestellt.

SQL Server-Datenbankmodultyp

.NET Framework-Typ

SqlDbType-Enumeration

SqlDataReader-Accessor vom Typ SqlTypes

DbType-Enumeration

SqlDataReader-Accessor vom Typ DbType

bigint

Int64

BigInt

GetSqlInt64

Int64

GetInt64

binary

Byte[]

VarBinary

GetSqlBinary

Binary

GetBytes

bit

Boolean

Bit

GetSqlBoolean

Boolean

GetBoolean

char

Zeichenfolge

Char[]

Char

GetSqlString

AnsiStringFixedLength,

String

GetString

GetChars

date

(nur SQL Server 2008)

DateTime

Date

GetSqlDateTime

Date

GetDateTime

datetime

DateTime

DateTime

GetSqlDateTime

DateTime

GetDateTime

datetime2

(nur SQL Server 2008)

DateTime2

DateTime2

GetSqlDateTime

DateTime2

GetDateTime

datetimeoffset

(nur SQL Server 2008)

DateTimeOffset

DateTimeOffset

none

DateTimeOffset

GetDateTimeOffset

decimal

Dezimal

Decimal

GetSqlDecimal

Decimal

GetDecimal

FILESTREAM-Attribut (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

Dezimal

Money

GetSqlMoney

Decimal

GetDecimal

nchar

Zeichenfolge

Char[]

NChar

GetSqlString

StringFixedLength

GetString

GetChars

ntext

Zeichenfolge

Char[]

NText

GetSqlString

String

GetString

GetChars

numeric

Dezimal

Decimal

GetSqlDecimal

Decimal

GetDecimal

nvarchar

Zeichenfolge

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

Dezimal

SmallMoney

GetSqlDecimal

Decimal

GetDecimal

sql_variant

Object *

Variant

GetSqlValue *

Object

GetValue *

text

Zeichenfolge

Char[]

Text

GetSqlString

String

GetString

GetChars

time

(nur SQL Server 2008)

TimeSpan

Time

none

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

Zeichenfolge

Char[]

VarChar

GetSqlString

AnsiString, String

GetString

GetChars

xml

Xml

Xml

GetSqlXml

Xml

none

* Verwenden Sie einen spezifischen typisierten Accessor, wenn Sie den zugrunde liegenden Typ von sql_variant kennen.

SQL Server 2005-Onlinedokumentation

Ausführlichere Informationen zu SQL Server-Datentypen finden Sie in der Onlinedokumentation zu SQL Server für die von Ihnen verwendete Version von SQL Server.

SQL Server 2000

SQL Server 2005

SQL Server 2008

Datentypen

Datentypen (Datenbankmodul)

Datentypen (Datenbankmodul)

Siehe auch

Konzepte

Konfigurieren von Parametern und Parameterdatentypen (ADO.NET)

Weitere Ressourcen

SQL Server-Datentypen und ADO.NET

Binäre Daten und Daten mit großen Werten in SQL Server (ADO.NET)

Datentypmappings in ADO.NET