Asignaciones de tipos de datos de SQL ServerSQL Server Data Type Mappings

SQL Server y .NET Framework se basan en sistemas de tipos distintos.SQL Server and the .NET Framework are based on different type systems. Por ejemplo, la estructura Decimal de .NET Framework tiene una escala máxima de 28, mientras que los tipos de datos decimal y numérico de SQL Server tienen una escala máxima de 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. Para mantener la integridad de los datos al leer y escribir datos, SqlDataReader expone métodos de descriptores de acceso con tipo específicos de SQL Server que devuelven objetos de System.Data.SqlTypes así como métodos de descriptores de acceso que devuelven tipos de .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. Los tipos de SQL Server y los de .NET Framework se representan también mediante enumeraciones en las clases DbType y SqlDbType, que puede usar al especificar los tipos de datos 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.

En la tabla siguiente se muestra el tipo de .NET Framework.NET Framework deducido, las enumeraciones DbType y SqlDbType y los métodos de descriptor de acceso de SqlDataReader.The following table shows the inferred .NET Framework.NET Framework type, the DbType and SqlDbType enumerations, and the accessor methods for the SqlDataReader.

Tipo de motor de base de datos de SQL ServerSQL Server Database Engine type Tipo de .NET Framework.NET Framework type Enumeración SqlDbTypeSqlDbType enumeration Descriptor de acceso con tipo SqlDataReader SqlTypesSqlDataReader SqlTypes typed accessor Enumeración DbTypeDbType enumeration Descriptor de acceso con tipo SqlDataReader DbTypeSqlDataReader DbType typed accessor
bigintbigint Int64Int64 BigInt GetSqlInt64 Int64 GetInt64
binariabinary Byte[]Byte[] VarBinary GetSqlBinary Binary GetBytes
bitsbit BooleanBoolean Bit GetSqlBoolean Boolean GetBoolean
charchar StringString

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

String
GetString

GetChars
fecha 1date 1

(SQL Server 2008 y posteriores)(SQL Server 2008 and later)
DateTimeDateTime Date 1Date 1 GetSqlDateTime Date 1Date 1 GetDateTime
datetimedatetime DateTimeDateTime DateTime GetSqlDateTime DateTime GetDateTime
datetime2datetime2

(SQL Server 2008 y posteriores)(SQL Server 2008 and later)
DateTimeDateTime DateTime2 NingunaNone DateTime2 GetDateTime
datetimeoffsetdatetimeoffset

(SQL Server 2008 y posteriores)(SQL Server 2008 and later)
DateTimeOffsetDateTimeOffset DateTimeOffset ningunanone DateTimeOffset GetDateTimeOffset
decimaldecimal DecimalDecimal Decimal GetSqlDecimal Decimal GetDecimal
Atributo FILESTREAM (varbinary(max))FILESTREAM attribute (varbinary(max)) Byte[]Byte[] VarBinary GetSqlBytes Binary GetBytes
floatfloat DoubleDouble Float GetSqlDouble Double GetDouble
imagenimage 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
numéricasnumeric DecimalDecimal Decimal GetSqlDecimal Decimal GetDecimal
nvarcharnvarchar StringString

Char[]Char[]
NVarChar GetSqlString String GetString

GetChars
realesreal 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 Objeto 2Object 2 Variant GetSqlValue 2GetSqlValue 2 Object GetValue 2GetValue 2
textotext StringString

Char[]Char[]
Text GetSqlString String GetString

GetChars
horatime

(SQL Server 2008 y posteriores)(SQL Server 2008 and later)
TimeSpanTimeSpan Time ningunanone Time GetDateTime
marca de tiempotimestamp 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 ningunanone

1 no se puede establecer la DbType propiedad de un SqlParameter a SqlDbType.Date.1 You cannot set the DbType property of a SqlParameter to SqlDbType.Date.
2 utilice un descriptor de acceso con tipo si conoce el tipo subyacente de la sql_variant.2 Use a specific typed accessor if you know the underlying type of the sql_variant.

Referencia de Libros en pantalla de SQL ServerSQL Server Books Online Reference

Para obtener más información acerca de los tipos de datos de SQL Server, vea tipos de datos (motor de base de datos).For more information about SQL Server data types, see Data Types (Database Engine).

Vea tambiénSee Also

Tipos de datos de SQL Server y ADO.NETSQL Server Data Types and ADO.NET
Datos binarios y datos de valores grandes de SQL ServerSQL Server Binary and Large-Value Data
Asignaciones de tipos de datos en ADO.NETData Type Mappings in ADO.NET
Configuración de parámetros y tipos de datos de parámetrosConfiguring Parameters and Parameter Data Types
Proveedores administrados de ADO.NET y Centro para desarrolladores de DataSetADO.NET Managed Providers and DataSet Developer Center