System.Data Namespace
Provides access to the column values within each row for a DataReader, and is implemented by .NET data providers that access relational databases.
Class |
Description |
OleDbDataReader |
Provides a way of reading a forward-only stream of data rows from a data source. |
SqlDataReader |
Provides a means of reading a forward-only stream of rows from an SQL Server™ database. |
The IDataReader and IDataRecord interfaces allow an inheriting class to implement a DataReader class, which provides a means of reading one or more forward-only streams of result sets. For more information about DataReader classes, see the ADO.NET DataReader. For more information about implementing .NET data providers, see Implementing a .NET Data Provider.
An application does not create an instance of the IDataRecord interface directly, but initializes an instance of a class that inherits IDataRecord. Typically this is done by obtaining a DataReader through ExecuteReader method of the Command object.
Classes that inherit IDataRecord must implement the 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 alternate types, which conform to CLR types. As an example, the following table lists suggested mappings from OLE DB data types to CLR types, and lists alternate types in parentheses in the CLR Type column.
OLE DB Type |
CLR Type |
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 |
The following examples demonstrate using the IDataRecord interface to render the data items of a templated control that are bound to the column values within each row of a DataReader.
IDataReader OleDbDataReader SqlDataReader