Mapowanie typu danych serwera SQL

Programy SQL Server i .NET Framework są oparte na różnych systemach typów. Na przykład struktura .NET Framework Decimal ma maksymalną skalę 28, natomiast typy danych dziesiętnych i liczbowych programu SQL Server mają maksymalną skalę 38. Aby zachować integralność danych podczas odczytywania i zapisywania danych, SqlDataReader uwidacznia metody dostępu specyficzne dla programu SQL Server, które zwracają obiekty System.Data.SqlTypes oraz metody dostępu zwracające typy programu .NET Framework. Typy programu SQL Server i typy programu .NET Framework są również reprezentowane przez wyliczenia w DbType klasach i SqlDbType , których można użyć podczas określania SqlParameter typów danych.

W poniższej tabeli przedstawiono wywnioskowany typ programu .NET Framework, DbType wyliczenia i SqlDbType oraz metody dostępu dla elementu SqlDataReader.

Typ aparatu bazy danych programu SQL Server Typ programu .NET Framework SqlDbType, wyliczenie SqlDataReader SqlTypes, typizowane metody dostępu DbType, wyliczenie SqlDataReader DbType, typizowane akcesorium
bigint Int64 BigInt GetSqlInt64 Int64 GetInt64
dane binarne Bajt[] VarBinary GetSqlBinary Binary GetBytes
bitowe Wartość logiczna Bit GetSqlBoolean Boolean GetBoolean
char String

Char[]
Char GetSqlString AnsiStringFixedLength,

String
GetString

GetChars
data 1

(SQL Server 2008 i nowsze)
DateTime Date1 GetSqlDateTime Date1 GetDateTime
datetime DateTime DateTime GetSqlDateTime DateTime GetDateTime
datetime2

(SQL Server 2008 i nowsze)
DateTime DateTime2 Brak DateTime2 GetDateTime
datetimeoffset

(SQL Server 2008 i nowsze)
DateTimeOffset DateTimeOffset Brak DateTimeOffset GetDateTimeOffset
decimal Dziesiętne Decimal GetSqlDecimal Decimal GetDecimal
ATRYBUT FILESTREAM (varbinary(max)) Bajt[] VarBinary GetSqlBytes Binary GetBytes
liczba zmiennoprzecinkowa Liczba rzeczywista Float GetSqlDouble Double GetDouble
obraz Bajt[] Binary GetSqlBinary Binary GetBytes
int Int32 Int GetSqlInt32 Int32 GetInt32
pieniędzy Dziesiętne Money GetSqlMoney Decimal GetDecimal
nchar String

Char[]
NChar GetSqlString StringFixedLength GetString

GetChars
Ntext String

Char[]
NText GetSqlString String GetString

GetChars
numeryczne Dziesiętne Decimal GetSqlDecimal Decimal GetDecimal
nvarchar String

Char[]
NVarChar GetSqlString String GetString

GetChars
rzeczywiste Pojedynczy Real GetSqlSingle Single GetFloat
Rowversion Bajt[] Timestamp GetSqlBinary Binary GetBytes
smalldatetime DateTime DateTime GetSqlDateTime DateTime GetDateTime
smallint Int16 SmallInt GetSqlInt16 Int16 GetInt16
smallmoney Dziesiętne SmallMoney GetSqlMoney Decimal GetDecimal
Sql_variant Obiekt 2 Variant GetSqlValue2 Object GetValue2
text String

Char[]
Text GetSqlString String GetString

GetChars
time

(SQL Server 2008 i nowsze)
przedział_czasu Time Brak Time GetDateTime
timestamp Bajt[] Timestamp GetSqlBinary Binary GetBytes
tinyint Byte TinyInt GetSqlByte Byte GetByte
uniqueidentifier Identyfikator GUID UniqueIdentifier GetSqlGuid Guid GetGuid
varbinary Bajt[] VarBinary GetSqlBinary Binary GetBytes
varchar String

Char[]
VarChar GetSqlString AnsiString, String GetString

GetChars
xml XML Xml GetSqlXml Xml Brak

1 Nie można ustawić DbType właściwości obiektu SqlParameter na SqlDbType.Datewartość .
2 Użyj określonego typu metody dostępu, jeśli znasz podstawowy typ .sql_variant

SQL Server documentation (Dokumentacja programu SQL Server)

Aby uzyskać więcej informacji na temat typów danych programu SQL Server, zobacz Typy danych (Transact-SQL).

Zobacz też