Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
SQL Server e .NET Framework sono basati su sistemi di tipi diversi. 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. Per mantenere l'integrità dei dati durante la lettura e la scrittura di dati, SqlDataReader espone metodi di accesso tipizzati specifici di SQL Server che restituiscono oggetti di System.Data.SqlTypes nonché metodi di accesso che restituiscono tipi di .NET Framework. 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.
La tabella seguente illustra il tipo di .NET Framework dedotto, le enumerazioni DbType e SqlDbType e i metodi della funzione di accesso per SqlDataReader.
| Tipo di motore di database di SQL Server | Tipo .NET Framework | Enumerazione SqlDbType | Funzione di accesso tipizzata SqlTypes SqlDataReader | Enumerazione DbType | Funzione di accesso tipizzata DbType SqlDataReader |
|---|---|---|---|---|---|
| bigint | Int64 | BigInt | GetSqlInt64 | Int64 | GetInt64 |
| binario | Byte[] | VarBinary | GetSqlBinary | Binary | GetBytes |
| pezzo | Booleano | Bit | GetSqlBoolean | Boolean | GetBoolean |
| Char | Stringa Char[] |
Char | GetSqlString |
AnsiStringFixedLength, String |
GetString GetChars |
| data 1 (SQL Server 2008 e versioni successive) |
DataOra | Date 1 | GetSqlDateTime | Date 1 | GetDateTime |
| data e ora | DataOra | DateTime | GetSqlDateTime | DateTime | GetDateTime |
| datetime2 (SQL Server 2008 e versioni successive) |
DataOra | DateTime2 | Nessuno | DateTime2 | GetDateTime |
| datetimeoffset (SQL Server 2008 e versioni successive) |
DateTimeOffset (struttura per gestire data e ora con fuso orario) | DateTimeOffset | Nessuno | DateTimeOffset | GetDateTimeOffset |
| decimale | Decimale | Decimal | GetSqlDecimal | Decimal | GetDecimal |
| Attributo FILESTREAM (varbinary(max)) | Byte[] | VarBinary | GetSqlBytes | Binary | GetBytes |
| galleggiare | Doppio | Float | GetSqlDouble | Double | GetDouble |
| immagine | Byte[] | Binary | GetSqlBinary | Binary | GetBytes |
| Int | Int32 | Int | GetSqlInt32 | Int32 | GetInt32 |
| denaro | Decimale | Money | GetSqlMoney | Decimal | GetDecimal |
| nchar | Stringa Char[] |
NChar | GetSqlString | StringFixedLength | GetString GetChars |
| ntext | Stringa Char[] |
NText | GetSqlString | String | GetString GetChars |
| numerico | Decimale | Decimal | GetSqlDecimal | Decimal | GetDecimal |
| nvarchar | Stringa Char[] |
NVarChar | GetSqlString | String | GetString GetChars |
| autentico | Singola | Real | GetSqlSingle | Single | GetFloat |
| versione di riga | Byte[] | Timestamp | GetSqlBinary | Binary | GetBytes |
| smalldatetime | DataOra | DateTime | GetSqlDateTime | DateTime | GetDateTime |
| smallint | Int16 | SmallInt | GetSqlInt16 | Int16 | GetInt16 |
| piccola somma di denaro | Decimale | SmallMoney | GetSqlMoney | Decimal | GetDecimal |
| sql_variant | Oggetto 2 | Variant | GetSqlValue 2 | Object | GetValue 2 |
| Testo | Stringa Char[] |
Text | GetSqlString | String | GetString GetChars |
| tempo (SQL Server 2008 e versioni successive) |
Intervallo di tempo | Time | Nessuno | Time | GetTimeSpan |
| Marca temporale | Byte[] | Timestamp | GetSqlBinary | Binary | GetBytes |
| tinyint | Byte | TinyInt | GetSqlByte | Byte | GetByte |
| identificatore univoco | GUID | UniqueIdentifier | GetSqlGuid | Guid | GetGuid |
| varbinary | Byte[] | VarBinary | GetSqlBinary | Binary | GetBytes |
| varchar | Stringa Char[] |
VarChar | GetSqlString | AnsiString, String | GetString GetChars |
| XML | XML | Xml | GetSqlXml | Xml | Nessuno |
1 Non è possibile impostare la proprietà DbType di un SqlParameter su SqlDbType.Date.
2 Usare una funzione di accesso tipizzata specifica se è noto il tipo sottostante di sql_variant.
Documentazione di SQL Server
Per altre informazioni sui tipi di dati di SQL Server, vedere Tipi di dati (Transact-SQL).