Provides access to the column values within each row for a DataReader, and is implemented by .NET Framework data providers that access relational databases.
See Also: IDataRecord Members
The System.Data.IDataReader and System.Data.IDataRecord interfaces enable an inheriting class to implement a DataReader class. This provides a way of reading one or more forward-only streams of result sets. For more information about DataReader classes, see Retrieving Data Using the DataReader.
An application does not create an instance of the System.Data.IDataRecord interface directly, but creates an instance of a class that inherits System.Data.IDataRecord. Typically, you do this by obtaining a DataReader through the ExecuteReader method of the Command object.
Classes that inherit System.Data.IDataRecord must implement all inherited members, and typically define additional members to add provider-specific functionality.
Providers implementing a DataReader are required to expose data in common language runtime (CLR) types. Type coercion is defined for some types not included in the CLR. These values may be accessed as alternative types that comply with CLR types. As an example, the following table lists suggested mappings from OLE DB data types to CLR types, with alternative types in parentheses.
DBTYPE_BOOL |
Int16 |
DBTYPE_BSTR |
string |
DBTYPE_BYTES |
byte[] |
DBTYPE_CY |
Decimal |
DBTYPE_DATE |
DateTime |
DBTYPE_DBDATE |
DateTime |
DBTYPE_DBTIME |
DateTime |
DBTYPE_DBTIMESTAMP |
DateTime |
DBTYPE_DECIMAL |
Decimal |
DBTYPE_EMPTY |
null |
DBTYPE_ERROR |
ExternalException |
DBTYPE_FILETIME |
DateTime |
DBTYPE_GUID |
Guid |
DBTYPE_HCHAPTER |
not supported |
DBTYPE_I1 |
SByte |
DBTYPE_I2 |
Int16 |
DBTYPE_I4 |
Int32 |
DBTYPE_I8 |
Int64 |
DBTYPE_IDISPATCH |
object |
DBTYPE_IUNKNOWN |
object |
DBTYPE_NULL |
DBNull.Value |
DBTYPE_NUMERIC |
Decimal |
DBTYPE_PROPVARIANT |
object |
DBTYPE_R4 |
Single |
DBTYPE_R8 |
Double |
DBTYPE_STR |
string |
DBTYPE_UDT |
not supported |
DBTYPE_UI1 |
byte (Int16) |
DBTYPE_UI2 |
UInt16 (Int32) |
DBTYPE_UI4 |
UInt32 (Int64) |
DBTYPE_UI8 |
UInt64 (Decimal) |
DBTYPE_VARIANT |
object |
DBTYPE_VARNUMERIC |
not supported |
DBTYPE_WSTR |
string |