Mapování datových typů SQL Serveru

SQL Server a rozhraní .NET Framework jsou založeny na různých typech systémů. Například struktura rozhraní .NET Framework Decimal má maximální měřítko 28, zatímco desetinné a číselné datové typy SQL Serveru mají maximální měřítko 38. Kvůli zachování integrity dat při čtení a zápisu dat SqlDataReader zveřejňuje metody přístupového objektu specifické pro SQL Server, které vracejí objekty a metody přístupových System.Data.SqlTypes objektů, které vracejí typy rozhraní .NET Framework. Typy SQL Serveru i typy rozhraní .NET Framework jsou také reprezentovány výčty v třídách DbTypeSqlDbType , které můžete použít při zadávání SqlParameter datových typů.

Následující tabulka uvádí odvozený typ rozhraní .NET Framework, výčty DbType a SqlDbType metody příslušenství pro SqlDataReaderrozhraní .

Typ databázového stroje SQL Serveru Typ rozhraní .NET Framework SqlDbType – výčet Typové příslušenství SqlTypes pro SqlDataReader DbType – výčet Typové příslušenství SqlDataReader DbType
bigint Int64 BigInt GetSqlInt64 Int64 GetInt64
binární Bajt[] VarBinary GetSqlBinary Binary GetBytes
bitové Logická hodnota Bit GetSqlBoolean Boolean GetBoolean
char String

Znak[]
Char GetSqlString AnsiStringFixedLength,

String
GetString

GetChars
datum 1

(SQL Server 2008 a novější)
DateTime Date1 GetSqlDateTime Date1 GetDateTime
datetime DateTime DateTime GetSqlDateTime DateTime GetDateTime
datetime2

(SQL Server 2008 a novější)
DateTime DateTime2 Nic DateTime2 GetDateTime
datetimeoffset

(SQL Server 2008 a novější)
DateTimeOffset DateTimeOffset Žádná DateTimeOffset GetDateTimeOffset
decimal Desetinné číslo Decimal GetSqlDecimal Decimal GetDecimal
ATRIBUT FILESTREAM (varbinary(max)) Bajt[] VarBinary GetSqlBytes Binary GetBytes
float (číslo s plovoucí řádovou čárkou) Hodnota s dvojitou přesností Float GetSqlDouble Double GetDouble
image Bajt[] Binary GetSqlBinary Binary GetBytes
int Int32 Int GetSqlInt32 Int32 GetInt32
Peníze Desetinné číslo Money GetSqlMoney Decimal GetDecimal
Nchar String

Znak[]
NChar GetSqlString StringFixedLength GetString

GetChars
Ntext String

Znak[]
NText GetSqlString String GetString

GetChars
numerické Desetinné číslo Decimal GetSqlDecimal Decimal GetDecimal
Nvarchar String

Znak[]
NVarChar GetSqlString String GetString

GetChars
real Jeden Real GetSqlSingle Single GetFloat
Rowversion Bajt[] Timestamp GetSqlBinary Binary GetBytes
Smalldatetime DateTime DateTime GetSqlDateTime DateTime GetDateTime
smallint Int16 SmallInt GetSqlInt16 Int16 GetInt16
Smallmoney Desetinné číslo SmallMoney GetSqlMoney Decimal GetDecimal
Sql_variant Objekt 2 Variant GetSqlValue2 Object GetValue2
text String

Znak[]
Text GetSqlString String GetString

GetChars
čas

(SQL Server 2008 a novější)
TimeSpan Time Žádná Time GetDateTime
časové razítko Bajt[] Timestamp GetSqlBinary Binary GetBytes
tinyint Byte TinyInt GetSqlByte Byte GetByte
Uniqueidentifier Guid UniqueIdentifier GetSqlGuid Guid GetGuid
Varbinary Bajt[] VarBinary GetSqlBinary Binary GetBytes
varchar String

Znak[]
VarChar GetSqlString AnsiString, String GetString

GetChars
xml XML Xml GetSqlXml Xml Žádná

1 Nelze nastavit DbType vlastnost SqlParameter na SqlDbType.Datehodnotu .
2 Použijte konkrétní typ příslušenství, pokud znáte základní typ sql_variant.

Dokumentace SQL Serveru

Další informace o datových typech SQL Serveru naleznete v tématu Datové typy (Transact-SQL).

Viz také