SQL Server-DatentypzuordnungenSQL Server Data Type Mappings

SQL Server und .NET Framework basieren auf unterschiedlichen Typsystemen.SQL Server and the .NET Framework are based on different type systems. 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.For example, the .NET Framework Decimal structure has a maximum scale of 28, whereas the SQL Server decimal and numeric data types have a maximum scale of 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.To maintain data integrity when reading and writing data, the SqlDataReader exposes SQL Server–specific typed accessor methods that return objects of System.Data.SqlTypes as well as accessor methods that return .NET Framework types. 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.Both SQL Server types and .NET Framework types are also represented by enumerations in the DbType and SqlDbType classes, which you can use when specifying SqlParameter data types.

In der folgenden Tabelle werden der herausgestellte .NET Framework Typ, die DbType SqlDbType Enumerationen und sowie die Accessormethoden für das-Element angezeigt SqlDataReader .The following table shows the inferred .NET Framework type, the DbType and SqlDbType enumerations, and the accessor methods for the SqlDataReader.

Typ „SQL Server-Datenbank-Engine“SQL Server Database Engine type .NET Framework-Typ.NET Framework type SqlDbType-EnumerationSqlDbType enumeration SqlDataReader-Accessor vom Typ SqlTypesSqlDataReader SqlTypes typed accessor DbType-EnumerationDbType enumeration SqlDataReader-Accessor vom DbType-TypSqlDataReader DbType typed accessor
BIGINTbigint Int64Int64 BigInt GetSqlInt64 Int64 GetInt64
BINARYbinary Byte[]Byte[] VarBinary GetSqlBinary Binary GetBytes
bitbit BooleanBoolean Bit GetSqlBoolean Boolean GetBoolean
charchar StringString

Char[]Char[]
Char GetSqlString AnsiStringFixedLength,AnsiStringFixedLength,

String
GetString

GetChars
Datum 1date 1

(SQL Server 2008 und höher)(SQL Server 2008 and later)
DatetimeDateTime Date1Date 1 GetSqlDateTime Date1Date 1 GetDateTime
datetimedatetime DatetimeDateTime DateTime GetSqlDateTime DateTime GetDateTime
datetime2datetime2

(SQL Server 2008 und höher)(SQL Server 2008 and later)
DatetimeDateTime DateTime2 KeineNone DateTime2 GetDateTime
datetimeoffsetdatetimeoffset

(SQL Server 2008 und höher)(SQL Server 2008 and later)
DateTimeOffsetDateTimeOffset DateTimeOffset Keinenone DateTimeOffset GetDateTimeOffset
Decimaldecimal DecimalDecimal Decimal GetSqlDecimal Decimal GetDecimal
FILESTREAM attribute (varbinary(max))FILESTREAM attribute (varbinary(max)) Byte[]Byte[] VarBinary GetSqlBytes Binary GetBytes
floatfloat DoubleDouble Float GetSqlDouble Double GetDouble
imageimage Byte[]Byte[] Binary GetSqlBinary Binary GetBytes
INTint Int32Int32 Int GetSqlInt32 Int32 GetInt32
moneymoney DecimalDecimal Money GetSqlMoney Decimal GetDecimal
NCHARnchar StringString

Char[]Char[]
NChar GetSqlString StringFixedLength GetString

GetChars
ntextntext StringString

Char[]Char[]
NText GetSqlString String GetString

GetChars
NUMERICnumeric DecimalDecimal Decimal GetSqlDecimal Decimal GetDecimal
NVARCHARnvarchar StringString

Char[]Char[]
NVarChar GetSqlString String GetString

GetChars
realreal SingleSingle Real GetSqlSingle Single GetFloat
rowversionrowversion Byte[]Byte[] Timestamp GetSqlBinary Binary GetBytes
smalldatetimesmalldatetime DatetimeDateTime DateTime GetSqlDateTime DateTime GetDateTime
SMALLINTsmallint Int16Int16 SmallInt GetSqlInt16 Int16 GetInt16
SMALLMONEYsmallmoney DecimalDecimal SmallMoney GetSqlMoney Decimal GetDecimal
sql_variantsql_variant Objekt 2Object 2 Variant GetSqlValue2GetSqlValue 2 Object GetValue2GetValue 2
texttext StringString

Char[]Char[]
Text GetSqlString String GetString

GetChars
timetime

(SQL Server 2008 und höher)(SQL Server 2008 and later)
TimeSpanTimeSpan Time Keinenone Time GetDateTime
timestamptimestamp Byte[]Byte[] Timestamp GetSqlBinary Binary GetBytes
TINYINTtinyint ByteByte TinyInt GetSqlByte Byte GetByte
UNIQUEIDENTIFIERuniqueidentifier GuidGuid UniqueIdentifier GetSqlGuid Guid GetGuid
varbinaryvarbinary Byte[]Byte[] VarBinary GetSqlBinary Binary GetBytes
varcharvarchar StringString

Char[]Char[]
VarChar GetSqlString AnsiString, StringAnsiString, String GetString

GetChars
Xmlxml XmlXml Xml GetSqlXml Xml Keinenone

1 Sie können die- DbType Eigenschaft von nicht SqlParameter auf festlegen SqlDbType.Date .1 You cannot set the DbType property of a SqlParameter to SqlDbType.Date.
2 verwenden Sie einen bestimmten typisierten Accessor, wenn Sie den zugrunde liegenden Typ von kennen sql_variant .2 Use a specific typed accessor if you know the underlying type of the sql_variant.

SQL Server-DokumentationSQL Server documentation

Weitere Informationen zu SQL Server-Datentypen finden Sie unter Datentypen (Transact-SQL).For more information about SQL Server data types, see Data types (Transact-SQL).

Weitere InformationenSee also