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 nella 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. 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) |
Data/Ora | Date 1 | GetSqlDateTime | Date 1 | GetDateTime |
data e ora | Data/Ora | DateTime | GetSqlDateTime | DateTime | GetDateTime |
datetime2 (SQL Server 2008 e versioni successive) |
Data/Ora | 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 | Data/Ora | 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).