Partager via


Mappage des types de données du fournisseur .NET Framework aux types de données .NET Framework

L'objet DataSet ADO.NET est indépendant de toute source de données spécifique. Les données d'un DataSet sont extraites d'une source de données et les modifications y sont répercutées à l'aide d'un DataAdapter. Autrement dit, lorsqu'un DataAdapter remplit un DataTable dans un DataSet avec des valeurs provenant d'une source de données, les types de données des colonnes du DataTable qui en résultent sont des types .NET Framework et non des types spécifiques au fournisseur .NET Framework utilisé pour se connecter à la source.

De même, lorsqu'un DataReader retourne une valeur d'une source de données, la valeur qui en résulte est stockée dans une variable locale qui a un type .NET Framework.

Pour les opérations Fill du DataAdapter et les méthodes Get du DataReader, le type .NET Framework est déduit du type retourné du fournisseur de données .NET Framework. Il est recommandé d'utiliser les méthodes d'accesseurs typées du DataReader lorsque vous connaissez le type spécifique de la valeur retournée. Ces méthodes sont plus performantes car elles retournent une valeur comme type .NET Framework spécifique, éliminant ainsi la nécessité d'une conversion de types supplémentaire. Le SqlDataReader expose des méthodes d'accesseurs typées spécifiques à SQL Server si un type .NET Framework ne répond pas aux besoins de l'application. Ces méthodes retournent des objets de System.Data.SqlType.

Les tableaux suivants illustrent le type .NET Framework déduit pour les types de données de Microsoft SQL Server, OLE DB et ODBC. Les méthodes d'accesseurs typées pour le DataReader sont également répertoriées.

Remarque   Les valeurs null des types de données du fournisseur .NET Framework sont représentées par DBNull.Value.

Fournisseur de données .NET Framework pour SQL Server

Type SQL Server Type .NET Framework Accesseur typé .NET Framework Accesseur typé SqlType
bigint Int64 GetInt64() GetSqlInt64()
binary Byte[] GetBytes() GetSqlBinary()
bit Boolean GetBoolean() GetSqlBit()
char String

Char[]

GetString()

GetChars()

GetSqlString()
datetime DateTime GetDateTime() GetSqlDateTime()
decimal Decimal GetDecimal() GetSqlDecimal()
float Double GetDouble() GetSqlDouble()
image Byte[] GetBytes() GetSqlBinary()
int Int32 GetInt32() GetSqlInt32()
money Decimal GetDecimal() GetSqlMoney()
nchar String

Char[]

GetString()

GetChars()

GetSqlString()
ntext String

Char[]

GetString()

GetChars()

GetSqlString()
numeric Decimal GetDecimal() GetSqlDecimal()
nvarchar String

Char[]

GetString()

GetChars()

GetSqlString()
real Single GetFloat() GetSqlSingle()
smalldatetime DateTime GetDateTime() GetSqlDateTime()
smallint Int16 GetInt16() GetSqlInt16()
smallmoney Decimal GetDecimal() GetSqlDecimal()
sql_variant Object* GetValue() * GetSqlValue() *
text String

Char[]

GetString()

GetChars()

GetSqlString()
timestamp Byte[] GetBytes() GetSqlBinary()
tinyint Byte GetByte() GetSqlByte()
uniqueidentifier Guid GetGuid() GetSqlGuid()
varbinary Byte[] GetBytes() GetSqlBinary()
varchar String

Char[]

GetString()

GetChars()

GetSqlString()

* Il est recommandé d'utiliser un accesseur typé spécifique si vous connaissez le type sous-jacent de sql_variant.

Fournisseur de données .NET Framework pour OLE DB

Type ADO Type OLE DB Type .NET Framework Accesseur typé .NET Framework
adBigInt DBTYPE_I8 Int64 GetInt64()
adBinary DBTYPE_BYTES Byte[] GetBytes()
adBoolean DBTYPE_BOOL Boolean GetBoolean()
adBSTR DBTYPE_BSTR String GetString()
adChapter DBTYPE_HCHAPTER Pris en charge dans le DataReader. Consultez Extraction des données à l'aide de DataReader. GetValue()
adChar DBTYPE_STR String GetString()
adCurrency DBTYPE_CY Decimal GetDecimal()
adDate DBTYPE_DATE DateTime GetDateTime()
adDBDate DBTYPE_DBDATE DateTime GetDateTime()
adDBTime DBTYPE_DBTIME DateTime GetDateTime()
adDBTimeStamp DBTYPE_DBTIMESTAMP DateTime GetDateTime()
adDecimal DBTYPE_DECIMAL Decimal GetDecimal()
adDouble DBTYPE_R8 Double GetDouble()
adError DBTYPE_ERROR ExternalException GetValue()
adFileTime DBTYPE_FILETIME DateTime GetDateTime()
adGUID DBTYPE_GUID Guid GetGuid()
adIDispatch DBTYPE_IDISPATCH * Object GetValue()
adInteger DBTYPE_I4 Int32 GetInt32()
adIUnknown DBTYPE_IUNKNOWN * Object GetValue()
adNumeric DBTYPE_NUMERIC Decimal GetDecimal()
adPropVariant DBTYPE_PROPVARIANT Object GetValue()
adSingle DBTYPE_R4 Single GetFloat()
adSmallInt DBTYPE_I2 Int16 GetInt16()
adTinyInt DBTYPE_I1 Byte GetByte()
adUnsignedBigInt DBTYPE_UI8 UInt64 GetValue()
adUnsignedInt DBTYPE_UI4 UInt32 GetValue()
adUnsignedSmallInt DBTYPE_UI2 UInt16 GetValue()
adUnsignedTinyInt DBTYPE_UI1 Byte GetByte()
adVariant DBTYPE_VARIANT Object GetValue()
adWChar DBTYPE_WSTR String GetString()
adUserDefined DBTYPE_UDT non pris en charge    
adVarNumeric DBTYPE_VARNUMERIC non pris en charge    

* Pour les types OLE DB DBTYPE_IUNKNOWN et DBTYPE_IDISPATCH, la référence d'objet est une représentation marshalée du pointeur.

Fournisseur de données .NET Framework pour ODBC

Type ODBC Type .NET Framework Accesseur typé .NET Framework
SQL_BIGINT Int64 GetInt64()
SQL_BINARY Byte[] GetBytes()
SQL_BIT Boolean GetBoolean()
SQL_CHAR String

Char[]

GetString()

GetChars()

SQL_DECIMAL Decimal GetDecimal()
SQL_DOUBLE Double GetDouble()
SQL_GUID Guid GetGuid()
SQL_INTEGER Int32 GetInt32()
SQL_LONG_VARCHAR String

Char[]

GetString()

GetChars()

SQL_LONGVARBINARY Byte[] GetBytes()
SQL_NUMERIC Decimal GetDecimal()
SQL_REAL Single GetFloat()
SQL_SMALLINT Int16 GetInt16()
SQL_TINYINT Byte GetByte()
SQL_TYPE_TIMES DateTime GetDateTime()
SQL_TYPE_TIMESTAMP DateTime GetDateTime()
SQL_VARBINARY Byte[] GetBytes()
SQL_WCHAR String

Char[]

GetString()

GetChars()

SQL_WLONGVARCHAR String

Char[]

GetString()

GetChars()

SQL_WVARCHAR String

Char[]

GetString()

GetChars()

Fournisseur de données .NET Framework pour Oracle

Type Oracle Type .NET Framework Accesseur typé .NET Framework Accesseur typé OracleType
BFILE Byte[] GetBytes() GetOracleBFile()
BLOB Byte[] GetBytes() GetOracleLob()
CHAR String

Char[]

GetString()

GetChars()

GetOracleString()
CLOB String

Char[]

GetString()

GetChars()

GetOracleLob()
DATE DateTime GetDateTime() GetOracleDateTime()
FLOAT Decimal GetDecimal() GetOracleNumber() **
INTEGER Decimal GetDecimal() GetOracleNumber() **
INTERVAL YEAR TO MONTH * Int32 GetInt32() GetOracleMonthSpan()
INTERVAL DAY TO SECOND * Timespan GetTimeSpan() GetOracleTimeSpan()
LONG String

Char[]

GetString()

GetChars()

GetOracleString()
LONG RAW Byte[] GetBytes() GetOracleBinary()
NCHAR String

Char[]

GetString()

GetChars()

GetOracleString()
NCLOB String

Char[]

GetString()

GetChars()

GetOracleLob()
NUMBER Decimal GetDecimal() GetOracleNumber() **
NVARCHAR2 String

Char[]

GetString()

GetChars()

GetOracleString()
RAW Byte[] GetBytes() GetOracleBinary()
REF CURSOR            
ROWID String

Char[]

GetString()

GetChars()

GetOracleString()
TIMESTAMP DateTime GetDateTime() GetOracleDateTime()
TIMESTAMP WITH LOCAL TIME ZONE * DateTime GetDateTime() GetOracleDateTime()
TIMESTAMP WITH TIME ZONE * DateTime GetDateTime() GetOracleDateTime()
UNSIGNED INTEGER Decimal GetDecimal() GetOracleNumber() **
VARCHAR2 String

Char[]

GetString()

GetChars()

GetOracleString()

* Le type Oracle spécifié est uniquement disponible lors de l'utilisation combinée du client Oracle 9i et du logiciel serveur.

** Un type NUMBER Oracle peut avoir un nombre maximal de 38 chiffres significatifs. Le type decimal .NET Framework est limité à 28 chiffres. La lecture d'un type NUMBER Oracle dans un type decimal .NET Framework résulte en une exception OverflowException pour les valeurs NUMBER dépassant 28 chiffres. Si vous lisez une valeur NUMBER Oracle à partir de OracleDataReader, il est recommandé d'appeler la méthode d'accesseur typée GetOracleNumber pour retourner les valeurs NUMBER Oracle en tant que OracleNumber. Si vous remplissez un DataSet, vous pouvez utiliser l'événement FillError pour déterminer si une exception OverflowException s'est produite et effectuer l'action adéquate. Pour plus d'informations sur l'événement FillError, consultez Utilisation des événements du DataAdapter.

Voir aussi

Remplissage d'un DataSet à partir d'un DataAdapter