Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
O SQL Server e o .NET Framework baseiam-se em diferentes sistemas de tipo. Por exemplo, a estrutura Decimal do .NET Framework tem uma escala máxima de 28, enquanto os tipos de dados decimais e numéricos do SQL Server têm uma escala máximo de 38. Para manter a integridade dos dados ao ler e gravar dados, o SqlDataReader expõe métodos acessadores tipados específicos do SQL Server que retornam objetos de System.Data.SqlTypes, bem como métodos acessadores que retornam tipos do .NET Framework. Os tipos do SQL Server e do .NET Framework também são representados por enumerações nas classes DbType e SqlDbType, que você pode usar ao especificar tipos de dados SqlParameter.
A tabela a seguir mostra o tipo de .NET Framework inferido, as enumerações de DbType e SqlDbType e os métodos acessadores de SqlDataReader.
| Tipo de mecanismo do Banco de Dados do SQL Server | Tipo de .NET Framework | Enumeração SqlDbType | Acessador tipado SqlTypes de SqlDataReader | Enumeração DbType | Acessador tipado DbType de SqlDataReader |
|---|---|---|---|---|---|
| BIGINT | Int64 | BigInt | GetSqlInt64 | Int64 | GetInt64 |
| binário | Byte[] | VarBinary | GetSqlBinary | Binary | GetBytes |
| bit | Booliano | Bit | GetSqlBoolean | Boolean | GetBoolean |
| carvão | fio Char[] |
Char | GetSqlString |
AnsiStringFixedLength, String |
GetString GetChars |
| data 1 (SQL Server 2008 e posteriores) |
Datetime | Date 1 | GetSqlDateTime | Date 1 | GetDateTime |
| DATETIME | Datetime | DateTime | GetSqlDateTime | DateTime | GetDateTime |
| `datetime2` (SQL Server 2008 e posteriores) |
Datetime | DateTime2 | Nenhum | DateTime2 | GetDateTime |
| datetimeoffset (SQL Server 2008 e posteriores) |
DateTimeOffset (representa uma data e hora com um desvio em relação ao horário UTC) | DateTimeOffset | nenhum | DateTimeOffset | GetDateTimeOffset |
| decimal | Decimal | Decimal | GetSqlDecimal | Decimal | GetDecimal |
| Atributo FILESTREAM (varbinary(max)) | Byte[] | VarBinary | GetSqlBytes | Binary | GetBytes |
| FLOAT | Duplo | Float | GetSqlDouble | Double | GetDouble |
| imagem | Byte[] | Binary | GetSqlBinary | Binary | GetBytes |
| INT | Int32 | Int | GetSqlInt32 | Int32 | GetInt32 |
| dinheiro | Decimal | Money | GetSqlMoney | Decimal | GetDecimal |
| NCHAR | fio Char[] |
NChar | GetSqlString | StringFixedLength | GetString GetChars |
| ntext | fio Char[] |
NText | GetSqlString | String | GetString GetChars |
| numérico | Decimal | Decimal | GetSqlDecimal | Decimal | GetDecimal |
| NVARCHAR | fio Char[] |
NVarChar | GetSqlString | String | GetString GetChars |
| verdadeiro | Solteiro | Real | GetSqlSingle | Single | GetFloat |
| rowversion | Byte[] | Timestamp | GetSqlBinary | Binary | GetBytes |
| smalldatetime | Datetime | DateTime | GetSqlDateTime | DateTime | GetDateTime |
| SMALLINT | Int16 | SmallInt | GetSqlInt16 | Int16 | GetInt16 |
| SMALLMONEY | Decimal | SmallMoney | GetSqlMoney | Decimal | GetDecimal |
| sql_variant (variante SQL) | Objeto 2 | Variant | GetSqlValue 2 | Object | GetValue 2 |
| Texto | fio Char[] |
Text | GetSqlString | String | GetString GetChars |
| tempo (SQL Server 2008 e posteriores) |
TimeSpan | Time | nenhum | Time | GetTimeSpan |
| carimbo de data/hora | Byte[] | Timestamp | GetSqlBinary | Binary | GetBytes |
| TINYINT | byte | TinyInt | GetSqlByte | Byte | GetByte |
| UNIQUEIDENTIFIER | GUID | UniqueIdentifier | GetSqlGuid | Guid | GetGuid |
| varbinary | Byte[] | VarBinary | GetSqlBinary | Binary | GetBytes |
| varchar | fio Char[] |
VarChar | GetSqlString | AnsiString, String | GetString GetChars |
| Xml | XML | Xml | GetSqlXml | Xml | nenhum |
1 Não é possível definir a propriedade DbType de um SqlParameter como SqlDbType.Date.
2 Use um acessador tipado específico se você souber o tipo subjacente de sql_variant.
documentação do SQL Server
Para obter mais informações sobre tipos de dados do SQL Server, confira Tipos de dados (Transact-SQL).