Mapping dei tipi di dati SQL ServerSQL Server Data Type Mappings

SQL Server e .NET Framework sono basati su sistemi di tipi diversi.SQL Server and the .NET Framework are based on different type systems. La struttura Decimal .NET Framework dispone ad esempio di una scala massima di 28, mentre i tipi di dati decimali e numerici di SQL Server dispongono di una scala massima di 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. Per mantenere l'integrità dei dati in caso di lettura e scrittura dei dati, SqlDataReader espone metodi delle funzioni di accesso tipizzate specifici di SQL Server che restituiscono oggetti di System.Data.SqlTypes, nonché metodi delle funzioni di accesso che restituiscono tipi .NET Framework.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. Sia i tipi SQL Server che i tipi .NET Framework sono rappresentati anche dalle enumerazioni nelle classi DbType e SqlDbType, che è possibile usare quando si specificano tipi di dati SqlParameter.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.

La tabella seguente illustra il tipo di .NET Framework dedotto, le DbType enumerazioni e SqlDbType e SqlDataReaderi metodi della funzione di accesso per.The following table shows the inferred .NET Framework type, the DbType and SqlDbType enumerations, and the accessor methods for the SqlDataReader.

Tipo di motore di database di SQL ServerSQL Server Database Engine type Tipo di .NET Framework.NET Framework type Enumerazione SqlDbTypeSqlDbType enumeration Funzione di accesso tipizzata SqlTypes SqlDataReaderSqlDataReader SqlTypes typed accessor Enumerazione DbTypeDbType enumeration Funzione di accesso tipizzata DbType SqlDataReaderSqlDataReader 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
Data 1date 1

(SQL Server 2008 e versioni successive)(SQL Server 2008 and later)
DateTimeDateTime Date 1Date 1 GetSqlDateTime Date 1Date 1 GetDateTime
Datetimedatetime DateTimeDateTime DateTime GetSqlDateTime DateTime GetDateTime
datetime2datetime2

(SQL Server 2008 e versioni successive)(SQL Server 2008 and later)
DateTimeDateTime DateTime2 NessunaNone DateTime2 GetDateTime
datetimeoffsetdatetimeoffset

(SQL Server 2008 e versioni successive)(SQL Server 2008 and later)
DateTimeOffsetDateTimeOffset DateTimeOffset nonenone 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 Oggetto 2Object 2 Variant GetSqlValue 2GetSqlValue 2 Object GetValue 2GetValue 2
texttext StringString

Char[]Char[]
Text GetSqlString String GetString

GetChars
timetime

(SQL Server 2008 e versioni successive)(SQL Server 2008 and later)
TimeSpanTimeSpan Time nonenone 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 nonenone

1 non è possibile impostare DbType la proprietà di SqlParameter su SqlDbType.Date.1 You cannot set the DbType property of a SqlParameter to SqlDbType.Date.
2 usare una funzione di accesso tipizzata specifica se si conosce il tipo sql_variantsottostante di.2 Use a specific typed accessor if you know the underlying type of the sql_variant.

Documentazione di SQL ServerSQL Server documentation

Per ulteriori informazioni sui tipi di dati SQL Server, vedere tipi di dati (Transact-SQL).For more information about SQL Server data types, see Data types (Transact-SQL).

Vedere ancheSee also