IDataRecord IDataRecord IDataRecord IDataRecord Interface

Definición

Proporciona acceso a los valores de columna dentro de cada fila para DataReader y se implementa mediante proveedores de datos .NET Framework que acceden a bases de datos relacionales. Provides access to the column values within each row for a DataReader, and is implemented by .NET Framework data providers that access relational databases.

public interface class IDataRecord
public interface IDataRecord
type IDataRecord = interface
Public Interface IDataRecord
Derivado

Ejemplos

En el ejemplo siguiente se crea instancias de las clases derivadas, SqlConnection, SqlCommand, y SqlDataReader.The following example creates instances of the derived classes, SqlConnection, SqlCommand, and SqlDataReader. En el ejemplo se lee los datos, se escriben en la consola.The example reads through the data, writing it out to the console. Por último, el ejemplo cierra el SqlDataReadery, a continuación, el SqlConnection.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]));
    }

}
Option Explicit On
Option Strict On

Imports System.Data
Imports System.Data.SqlClient

Module Module1

    Sub Main()
        Dim str As String = "Data Source=(local);Initial Catalog=Northwind;" _
       & "Integrated Security=SSPI;"
        ReadOrderData(str)
    End Sub

    Private Sub ReadOrderData(ByVal connectionString As String)
        Dim queryString As String = _
            "SELECT OrderID, CustomerID FROM dbo.Orders;"

        Using connection As New SqlConnection(connectionString)
            Dim command As New SqlCommand(queryString, connection)
            connection.Open()

            Dim reader As SqlDataReader = command.ExecuteReader()

            ' Call Read before accessing data.
            While reader.Read()
                ReadSingleRow(CType(reader, IDataRecord))
            End While

            ' Call Close when done reading.
            reader.Close()
        End Using
    End Sub

    Private Sub ReadSingleRow(ByVal record As IDataRecord)
       Console.WriteLine(String.Format("{0}, {1}", record(0), record(1)))

    End Sub

End Module

Comentarios

El IDataReader y IDataRecord interfaces permiten una clase heredera implementar un DataReader clase.The IDataReader and IDataRecord interfaces enable an inheriting class to implement a DataReader class. Esto proporciona una manera de leer uno o varios flujos de solo avance de conjuntos de resultados.This provides a way of reading one or more forward-only streams of result sets. Para obtener más información acerca de DataReader las clases, consulte recuperar datos mediante DataReader.For more information about DataReader classes, see Retrieving Data Using a DataReader.

Una aplicación no crea una instancia de la IDataRecord interfaz directamente, sino que crea una instancia de una clase que herede IDataRecord.An application does not create an instance of the IDataRecord interface directly, but creates an instance of a class that inherits IDataRecord. Normalmente, esto se realiza mediante la obtención de un DataReader a través de la ExecuteReader método de la Command objeto.Typically, you do this by obtaining a DataReader through the ExecuteReader method of the Command object.

Las clases que heredan IDataRecord debe implementar todos los miembros heredados y suelen definir miembros adicionales para agregar funcionalidad específica del proveedor.Classes that inherit IDataRecord must implement all inherited members, and typically define additional members to add provider-specific functionality.

Los proveedores que implementan un DataReader son necesarios para exponer datos en tipos common language runtime (CLR).Providers implementing a DataReader are required to expose data in common language runtime (CLR) types. Conversión de tipos se define para algunos tipos que no se incluye en el CLR.Type coercion is defined for some types not included in the CLR. Pueden tener acceso a estos valores como tipos alternativos que cumplen con los tipos de CLR.These values may be accessed as alternative types that comply with CLR types. Por ejemplo, en la tabla siguiente se enumera asignaciones sugeridas de tipos de datos OLE DB a tipos CLR, con tipos alternativos entre paréntesis.As an example, the following table lists suggested mappings from OLE DB data types to CLR types, with alternative types in parentheses.

Tipo de OLE DBOLE DB type Tipo CLRCLR type
DBTYPE_BOOLDBTYPE_BOOL Int16Int16
DBTYPE_BSTRDBTYPE_BSTR cadenastring
DBTYPE_BYTESDBTYPE_BYTES byte[]byte[]
DBTYPE_CYDBTYPE_CY DecimalDecimal
DBTYPE_DATEDBTYPE_DATE DateTimeDateTime
DBTYPE_DBDATEDBTYPE_DBDATE DateTimeDateTime
DBTYPE_DBTIMEDBTYPE_DBTIME DateTimeDateTime
DBTYPE_DBTIMESTAMPDBTYPE_DBTIMESTAMP DateTimeDateTime
DBTYPE_DECIMALDBTYPE_DECIMAL DecimalDecimal
DBTYPE_EMPTYDBTYPE_EMPTY nulonull
DBTYPE_ERRORDBTYPE_ERROR ExternalExceptionExternalException
DBTYPE_FILETIMEDBTYPE_FILETIME DateTimeDateTime
DBTYPE_GUIDDBTYPE_GUID GUIDGuid
DBTYPE_HCHAPTERDBTYPE_HCHAPTER no admitidonot supported
DBTYPE_I1DBTYPE_I1 SByteSByte
DBTYPE_I2DBTYPE_I2 Int16Int16
DBTYPE_I4DBTYPE_I4 Int32Int32
DBTYPE_I8DBTYPE_I8 Int64Int64
DBTYPE_IDISPATCHDBTYPE_IDISPATCH objetoobject
DBTYPE_IUNKNOWNDBTYPE_IUNKNOWN objetoobject
DBTYPE_NULLDBTYPE_NULL DBNull.ValueDBNull.Value
DBTYPE_NUMERICDBTYPE_NUMERIC DecimalDecimal
DBTYPE_PROPVARIANTDBTYPE_PROPVARIANT objetoobject
DBTYPE_R4DBTYPE_R4 SingleSingle
DBTYPE_R8DBTYPE_R8 DobleDouble
DBTYPE_STRDBTYPE_STR cadenastring
DBTYPE_UDTDBTYPE_UDT no admitidonot supported
DBTYPE_UI1DBTYPE_UI1 byte (Int16)byte (Int16)
DBTYPE_UI2DBTYPE_UI2 UInt16 (Int32)UInt16 (Int32)
DBTYPE_UI4DBTYPE_UI4 UInt32 (Int64)UInt32 (Int64)
DBTYPE_UI8DBTYPE_UI8 UInt64 (Decimal)UInt64 (Decimal)
DBTYPE_VARIANTDBTYPE_VARIANT objetoobject
DBTYPE_VARNUMERICDBTYPE_VARNUMERIC no admitidonot supported
DBTYPE_WSTRDBTYPE_WSTR cadenastring

Propiedades

FieldCount FieldCount FieldCount FieldCount

Obtiene el número de columnas de la fila actual. Gets the number of columns in the current row.

Item[Int32] Item[Int32] Item[Int32] Item[Int32]

Obtiene la columna que está ubicada en el índice especificado. Gets the column located at the specified index.

Item[String] Item[String] Item[String] Item[String]

Obtiene la columna con el nombre especificado. Gets the column with the specified name.

Métodos

GetBoolean(Int32) GetBoolean(Int32) GetBoolean(Int32) GetBoolean(Int32)

Obtiene el valor de la columna especificada como tipo Boolean. Gets the value of the specified column as a Boolean.

GetByte(Int32) GetByte(Int32) GetByte(Int32) GetByte(Int32)

Obtiene el valor del entero con signo de 8 bits de la columna especificada. Gets the 8-bit unsigned integer value of the specified column.

GetBytes(Int32, Int64, Byte[], Int32, Int32) GetBytes(Int32, Int64, Byte[], Int32, Int32) GetBytes(Int32, Int64, Byte[], Int32, Int32) GetBytes(Int32, Int64, Byte[], Int32, Int32)

Lee una secuencia de bytes del desplazamiento de columna especificado en el búfer como una matriz, comenzando en el desplazamiento de búfer dado. Reads a stream of bytes from the specified column offset into the buffer as an array, starting at the given buffer offset.

GetChar(Int32) GetChar(Int32) GetChar(Int32) GetChar(Int32)

Obtiene el valor de carácter de la columna especificada. Gets the character value of the specified column.

GetChars(Int32, Int64, Char[], Int32, Int32) GetChars(Int32, Int64, Char[], Int32, Int32) GetChars(Int32, Int64, Char[], Int32, Int32) GetChars(Int32, Int64, Char[], Int32, Int32)

Lee una secuencia de caracteres del desplazamiento de columna especificado en el búfer como una matriz, comenzando en el desplazamiento de búfer dado. Reads a stream of characters from the specified column offset into the buffer as an array, starting at the given buffer offset.

GetData(Int32) GetData(Int32) GetData(Int32) GetData(Int32)

Devuelve un IDataReader para el ordinal de columna especificado. Returns an IDataReader for the specified column ordinal.

GetDataTypeName(Int32) GetDataTypeName(Int32) GetDataTypeName(Int32) GetDataTypeName(Int32)

Obtiene la información de tipo de datos para el campo especificado. Gets the data type information for the specified field.

GetDateTime(Int32) GetDateTime(Int32) GetDateTime(Int32) GetDateTime(Int32)

Obtiene el valor de datos de fecha y hora del campo especificado. Gets the date and time data value of the specified field.

GetDecimal(Int32) GetDecimal(Int32) GetDecimal(Int32) GetDecimal(Int32)

Obtiene el valor numérico de posición fija del campo especificado. Gets the fixed-position numeric value of the specified field.

GetDouble(Int32) GetDouble(Int32) GetDouble(Int32) GetDouble(Int32)

Obtiene número de punto flotante de doble precisión del campo especificado. Gets the double-precision floating point number of the specified field.

GetFieldType(Int32) GetFieldType(Int32) GetFieldType(Int32) GetFieldType(Int32)

Obtiene la información Type correspondiente al tipo de Object que sería devuelto desde GetValue(Int32). Gets the Type information corresponding to the type of Object that would be returned from GetValue(Int32).

GetFloat(Int32) GetFloat(Int32) GetFloat(Int32) GetFloat(Int32)

Obtiene número de punto flotante de precisión sencilla del campo especificado. Gets the single-precision floating point number of the specified field.

GetGuid(Int32) GetGuid(Int32) GetGuid(Int32) GetGuid(Int32)

Devuelve el valor GUID del campo especificado. Returns the GUID value of the specified field.

GetInt16(Int32) GetInt16(Int32) GetInt16(Int32) GetInt16(Int32)

Obtiene el valor del entero con signo de 16 bits del campo especificado. Gets the 16-bit signed integer value of the specified field.

GetInt32(Int32) GetInt32(Int32) GetInt32(Int32) GetInt32(Int32)

Obtiene el valor del entero con signo de 32 bits del campo especificado. Gets the 32-bit signed integer value of the specified field.

GetInt64(Int32) GetInt64(Int32) GetInt64(Int32) GetInt64(Int32)

Obtiene el valor del entero con signo de 64 bits del campo especificado. Gets the 64-bit signed integer value of the specified field.

GetName(Int32) GetName(Int32) GetName(Int32) GetName(Int32)

Obtiene el nombre del campo para buscar. Gets the name for the field to find.

GetOrdinal(String) GetOrdinal(String) GetOrdinal(String) GetOrdinal(String)

Devuelve el índice del campo con nombre. Return the index of the named field.

GetString(Int32) GetString(Int32) GetString(Int32) GetString(Int32)

Obtiene el valor de cadena del campo especificado. Gets the string value of the specified field.

GetValue(Int32) GetValue(Int32) GetValue(Int32) GetValue(Int32)

Devuelve el valor del campo especificado. Return the value of the specified field.

GetValues(Object[]) GetValues(Object[]) GetValues(Object[]) GetValues(Object[])

Rellena una matriz de objetos con los valores de columna del registro actual. Populates an array of objects with the column values of the current record.

IsDBNull(Int32) IsDBNull(Int32) IsDBNull(Int32) IsDBNull(Int32)

Devuelve si el campo especificado está establecido en null. Return whether the specified field is set to null.

Se aplica a