Freigeben über


SQL Server-Datentypzuordnungen

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 SqlDataReader Zugriffsmethoden für SQL Server-spezifische Typen zur Verfügung, die Objekte als System.Data.SqlTypes zurückgeben. Zusätzlich werden Zugriffsmethoden 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.

Die folgende Tabelle enthält den abgeleiteten .NET Framework-Typ, die Enumerationen DbType und SqlDbType sowie die Accessormethoden für SqlDataReader.

Typ „SQL Server-Datenbank-Engine“ .NET Framework-Typ SqlDbType-Enumeration SqlDataReader-Accessor vom Typ SqlTypes DbType-Enumeration SqlDataReader-Accessor vom DbType-Typ
BIGINT Int64 BigInt GetSqlInt64 Int64 GetInt64
BINARY Byte[] VarBinary GetSqlBinary Binary GetBytes
Bit Boolescher Typ (Boolean) Bit GetSqlBoolean Boolean GetBoolean
verkohlen Schnur

Zeichen[]
Char GetSqlString AnsiStringFixedLength,

String
GetString

GetChars
Datum 1

(SQL Server 2008 und höher)
Datum/Uhrzeit Date 1 GetSqlDateTime Date 1 GetDateTime
Datum/Uhrzeit Datum/Uhrzeit DateTime GetSqlDateTime DateTime GetDateTime
datetime2

(SQL Server 2008 und höher)
Datum/Uhrzeit DateTime2 Keine DateTime2 GetDateTime
Datum-Uhrzeit-Offset

(SQL Server 2008 und höher)
DateTimeOffset (Datum/Uhrzeit mit Offset) DateTimeOffset nichts DateTimeOffset GetDateTimeOffset
Decimal Dezimalzahl Decimal GetSqlDecimal Decimal GetDecimal
FILESTREAM-Attribut (varbinary(max)) Byte[] VarBinary GetSqlBytes Binary GetBytes
Schweben Doppelt Float GetSqlDouble Double GetDouble
Bild Byte[] Binary GetSqlBinary Binary GetBytes
INT Int32 Int GetSqlInt32 Int32 GetInt32
Geld Dezimalzahl Money GetSqlMoney Decimal GetDecimal
NCHAR Schnur

Zeichen[]
NChar GetSqlString StringFixedLength GetString

GetChars
ntext Schnur

Zeichen[]
NText GetSqlString String GetString

GetChars
NUMERIC Dezimalzahl Decimal GetSqlDecimal Decimal GetDecimal
NVARCHAR Schnur

Zeichen[]
NVarChar GetSqlString String GetString

GetChars
Echt Ledig Real GetSqlSingle Single GetFloat
Zeilenversion Byte[] Timestamp GetSqlBinary Binary GetBytes
smalldatetime Datum/Uhrzeit DateTime GetSqlDateTime DateTime GetDateTime
SMALLINT Int16 SmallInt GetSqlInt16 Int16 GetInt16
SMALLMONEY Dezimalzahl SmallMoney GetSqlMoney Decimal GetDecimal
SQL-Variant Objekt 2 Variant GetSqlValue 2 Object GetValue 2
Text Schnur

Zeichen[]
Text GetSqlString String GetString

GetChars
Zeit

(SQL Server 2008 und höher)
TimeSpan Time nichts Time GetTimeSpan
Zeitstempel Byte[] Timestamp GetSqlBinary Binary GetBytes
TINYINT Byte TinyInt GetSqlByte Byte GetByte
UNIQUEIDENTIFIER Leitfaden UniqueIdentifier GetSqlGuid Guid GetGuid
varbinary Byte[] VarBinary GetSqlBinary Binary GetBytes
varchar Schnur

Zeichen[]
VarChar GetSqlString AnsiString, String GetString

GetChars
Xml XML Xml GetSqlXml Xml nichts

1 Sie können die DbType-Eigenschaft von SqlParameter nicht auf SqlDbType.Date festlegen.
2 Verwenden Sie eine spezifische typisierte Accessormethode, wenn Sie den zugrunde liegenden Typ von sql_variant kennen.

SQL Server-Dokumentation

Weitere Informationen zu SQL Server-Datentypen finden Sie unter Datentypen (Transact-SQL).

Weitere Informationen