Partilhar via


Mapeamentos de tipo de dados do SQL Server

O SQL Server e o .NET Framework são baseados em sistemas de tipos diferentes. Por exemplo, a estrutura do .NET Framework Decimal tem uma escala máxima de 28, enquanto os tipos de dados decimais e numéricos do SQL Server têm uma escala máxima de 38. Para manter a integridade dos dados ao ler e gravar dados, o SqlDataReader expõe métodos de acessador tipados específicos do SQL Server que retornam objetos de, bem como métodos de acessador que retornam tipos do System.Data.SqlTypes .NET Framework. Ambos os tipos do SQL Server e do DbType .NET Framework também são representados por enumerações nas classes and SqlDbType , que você pode usar ao especificar SqlParameter tipos de dados.

A tabela a seguir mostra o tipo .NET Framework inferido, as DbType enumerações e SqlDbType e os métodos de acessador para o SqlDataReader.

Tipo de Mecanismo de Banco de Dados do SQL Server Tipo do .NET Framework Enumeração SqlDbType SqlDataReader SqlTypes acessador digitado Enumeração DbType SqlDataReader DbType acessador digitado
bigint Int64 BigInt GetSqlInt64 Int64 GetInt64
binário Byte[] VarBinary GetSqlBinary Binary GetBytes
pouco Booleano Bit GetSqlBoolean Boolean GetBoolean
char Cordão

Char[]
Char GetSqlString AnsiStringFixedLength,

String
GetString

GetChars
data 1

(SQL Server 2008 e posterior)
Data e Hora Date GetSqlDateTime Date GetDateTime
Data e hora Data e Hora DateTime GetSqlDateTime DateTime GetDateTime
datetime2

(SQL Server 2008 e posterior)
Data e Hora DateTime2 Nenhuma DateTime2 GetDateTime
datetimeoffset

(SQL Server 2008 e posterior)
Desvio de Data e Hora DateTimeOffset nenhum DateTimeOffset GetDateTimeOffset
decimais Decimal Decimal GetSqlDecimal Decimal GetDecimal
Atributo FILESTREAM (varbinary(max)) Byte[] VarBinary GetSqlBytes Binary GetBytes
flutuante Duplo Float GetSqlDouble Double GetDouble
imagem Byte[] Binary GetSqlBinary Binary GetBytes
número inteiro Int32 Int GetSqlInt32 Int32 GetInt32
dinheiro Decimal Money GetSqlMoney Decimal GetDecimal
Nchar Cordão

Char[]
NChar GetSqlString StringFixedLength GetString

GetChars
ntexto Cordão

Char[]
NText GetSqlString String GetString

GetChars
numérico Decimal Decimal GetSqlDecimal Decimal GetDecimal
Nvarchar Cordão

Char[]
NVarChar GetSqlString String GetString

GetChars
autêntico Única Real GetSqlSingle Single GetFloat
versão de linha Byte[] Timestamp GetSqlBinary Binary GetBytes
PequenoDateTime Data e Hora DateTime GetSqlDateTime DateTime GetDateTime
Smallint Int16 SmallInt GetSqlInt16 Int16 GetInt16
dinheiro pequeno Decimal SmallMoney GetSqlMoney Decimal GetDecimal
sql_variant Objeto 2 Variant GetSqlValue 2 Object GetValue 2
texto Cordão

Char[]
Text GetSqlString String GetString

GetChars
hora

(SQL Server 2008 e posterior)
Intervalo de Tempo Time nenhum Time GetTimeSpan
carimbo de data/hora Byte[] Timestamp GetSqlBinary Binary GetBytes
tinyint byte TinyInt GetSqlByte Byte GetByte
identificador único GUID UniqueIdentifier GetSqlGuid Guid GetGuid
Varbinary Byte[] VarBinary GetSqlBinary Binary GetBytes
Varchar Cordão

Char[]
VarChar GetSqlString AnsiString, String GetString

GetChars
XML XML Xml GetSqlXml Xml nenhum

1 Não é possível definir a DbType propriedade de a SqlParameter como SqlDbType.Date.
2 Use um acessador digitado específico se você souber o tipo subjacente do sql_variant.

Documentação do SQL Server

Para obter mais informações sobre tipos de dados do SQL Server, consulte Tipos de dados (Transact-SQL).

Consulte também