Export (0) Print
Expand All

IDataRecord Interface

Provides access to the column values within each row for a DataReader, and is implemented by .NET Framework data providers that access relational databases.

Namespace:  System.Data
Assembly:  System.Data (in System.Data.dll)

public interface IDataRecord

The IDataRecord type exposes the following members.

  NameDescription
Public propertySupported by the XNA FrameworkFieldCountGets the number of columns in the current row.
Public propertySupported by the XNA FrameworkItem[Int32]Gets the column located at the specified index.
Public propertySupported by the XNA FrameworkItem[String]Gets the column with the specified name.
Top

  NameDescription
Public methodSupported by the XNA FrameworkGetBooleanGets the value of the specified column as a Boolean.
Public methodSupported by the XNA FrameworkGetByteGets the 8-bit unsigned integer value of the specified column.
Public methodSupported by the XNA FrameworkGetBytesReads a stream of bytes from the specified column offset into the buffer as an array, starting at the given buffer offset.
Public methodSupported by the XNA FrameworkGetCharGets the character value of the specified column.
Public methodSupported by the XNA FrameworkGetCharsReads a stream of characters from the specified column offset into the buffer as an array, starting at the given buffer offset.
Public methodSupported by the XNA FrameworkGetDataReturns an IDataReader for the specified column ordinal.
Public methodSupported by the XNA FrameworkGetDataTypeNameGets the data type information for the specified field.
Public methodSupported by the XNA FrameworkGetDateTimeGets the date and time data value of the specified field.
Public methodSupported by the XNA FrameworkGetDecimalGets the fixed-position numeric value of the specified field.
Public methodSupported by the XNA FrameworkGetDoubleGets the double-precision floating point number of the specified field.
Public methodSupported by the XNA FrameworkGetFieldTypeGets the Type information corresponding to the type of Object that would be returned from GetValue.
Public methodSupported by the XNA FrameworkGetFloatGets the single-precision floating point number of the specified field.
Public methodSupported by the XNA FrameworkGetGuidReturns the GUID value of the specified field.
Public methodSupported by the XNA FrameworkGetInt16Gets the 16-bit signed integer value of the specified field.
Public methodSupported by the XNA FrameworkGetInt32Gets the 32-bit signed integer value of the specified field.
Public methodSupported by the XNA FrameworkGetInt64Gets the 64-bit signed integer value of the specified field.
Public methodSupported by the XNA FrameworkGetNameGets the name for the field to find.
Public methodSupported by the XNA FrameworkGetOrdinalReturn the index of the named field.
Public methodSupported by the XNA FrameworkGetStringGets the string value of the specified field.
Public methodSupported by the XNA FrameworkGetValueReturn the value of the specified field.
Public methodSupported by the XNA FrameworkGetValuesPopulates an array of objects with the column values of the current record.
Public methodSupported by the XNA FrameworkIsDBNullReturn whether the specified field is set to null.
Top

The IDataReader and 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 a DataReader.

An application does not create an instance of the IDataRecord interface directly, but creates an instance of a class that inherits IDataRecord. Typically, you do this by obtaining a DataReader through the ExecuteReader method of the Command object.

Classes that inherit 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.

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 example creates instances of the derived classes, SqlConnection, SqlCommand, and SqlDataReader. The example reads through the data, writing it out to the console. Finally, the example closes the SqlDataReader, and then the SqlConnection.

using System;
using System.Data;
using System.Data.SqlClient;


class Program
{
    static void Main()
    {
        string str = "Data Source=(local);Initial Catalog=Northwind;"
            + "Integrated Security=SSPI";
        ReadOrderData(str);
    }

    private static void ReadOrderData(string connectionString)
    {
        string queryString =
            "SELECT OrderID, CustomerID FROM dbo.Orders;";

        using (SqlConnection connection =
                   new SqlConnection(connectionString))
        {
            SqlCommand command =
                new SqlCommand(queryString, connection);
            connection.Open();

            SqlDataReader reader = command.ExecuteReader();

            // Call Read before accessing data. 
            while (reader.Read())
            {
                ReadSingleRow((IDataRecord)reader);
            }

            // Call Close when done reading.
            reader.Close();
        }
    }

    private static void ReadSingleRow(IDataRecord record)
    {
        Console.WriteLine(String.Format("{0}, {1}", record[0], record[1]));
    }

}

.NET Framework

Supported in: 4.6, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

Show:
© 2014 Microsoft