IDataRecord Interfaz

Definición

Proporciona acceso a los valores de columna dentro de cada fila de un DataReadery los proveedores de datos de .NET implementan que acceden a bases de datos relacionales.

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

Ejemplos

En el ejemplo siguiente se crean instancias de las clases derivadas, SqlConnection, SqlCommandy SqlDataReader. En el ejemplo se leen los datos y se escribe en la consola. Por último, el ejemplo cierra SqlDataReadery, a continuación, .SqlConnection

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 dataRecord)
{
    Console.WriteLine(String.Format("{0}, {1}", dataRecord[0], dataRecord[1]));
}
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

Comentarios

Las IDataReader interfaces y IDataRecord permiten que una clase heredada implemente una DataReader clase . Esto proporciona una manera de leer uno o varios flujos de solo avance de conjuntos de resultados. Para obtener más información sobre DataReader las clases, consulte Recuperación de datos mediante dataReader.

Una aplicación no crea una instancia de la IDataRecord interfaz directamente, sino que crea una instancia de una clase que hereda IDataRecord. Normalmente, para ello, se obtiene un DataReader a través del ExecuteReader método del Command objeto .

Las clases que heredan IDataRecord deben implementar todos los miembros heredados y normalmente definir miembros adicionales para agregar funcionalidad específica del proveedor.

Los proveedores que implementan son DataReader necesarios para exponer datos en tipos de Common Language Runtime (CLR). La coerción de tipos se define para algunos tipos no incluidos en CLR. Se puede tener acceso a estos valores como tipos alternativos que cumplan los tipos CLR. Por ejemplo, en la tabla siguiente se enumeran las asignaciones sugeridas de tipos de datos OLE DB a tipos CLR, con tipos alternativos entre paréntesis.

Tipo de OLE DB Tipo CLR
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 (Tipo de dato decimal) Decimal
DBTYPE_EMPTY nulo
DBTYPE_ERROR ExternalException
DBTYPE_FILETIME DateTime
DBTYPE_GUID (Tipo de Datos GUID) GUID
DBTYPE_HCHAPTER no soportado
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 no soportado
DBTYPE_UI1 byte (Int16)
DBTYPE_UI2 UInt16 (Int32)
DBTYPE_UI4 UInt32 (Int64)
DBTYPE_UI8 UInt64 (decimal)
DBTYPE_VARIANT object
DBTYPE_VARNUMERIC no soportado
DBTYPE_WSTR string

Propiedades

Nombre Description
FieldCount

Obtiene el número de columnas de la fila actual.

Item[Int32]

Obtiene la columna ubicada en el índice especificado.

Item[String]

Obtiene la columna con el nombre especificado.

Métodos

Nombre Description
GetBoolean(Int32)

Obtiene el valor de la columna especificada como booleano.

GetByte(Int32)

Obtiene el valor entero sin signo de 8 bits de la columna especificada.

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

Lee un flujo de bytes del desplazamiento de columna especificado en el búfer como una matriz, empezando por el desplazamiento del búfer especificado.

GetChar(Int32)

Obtiene el valor de carácter de la columna especificada.

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

Lee una secuencia de caracteres del desplazamiento de columna especificado en el búfer como una matriz, empezando por el desplazamiento del búfer especificado.

GetData(Int32)

Devuelve un IDataReader para el ordinal de columna especificado.

GetDataTypeName(Int32)

Obtiene la información del tipo de datos para el campo especificado.

GetDateTime(Int32)

Obtiene el valor de datos de fecha y hora del campo especificado.

GetDecimal(Int32)

Obtiene el valor numérico de posición fija del campo especificado.

GetDouble(Int32)

Obtiene el número de punto flotante de precisión doble del campo especificado.

GetFieldType(Int32)

Obtiene la Type información correspondiente al tipo de Object que se devolvería de GetValue(Int32).

GetFloat(Int32)

Obtiene el número de punto flotante de precisión única del campo especificado.

GetGuid(Int32)

Devuelve el valor GUID del campo especificado.

GetInt16(Int32)

Obtiene el valor entero con signo de 16 bits del campo especificado.

GetInt32(Int32)

Obtiene el valor entero de 32 bits con signo del campo especificado.

GetInt64(Int32)

Obtiene el valor entero con signo de 64 bits del campo especificado.

GetName(Int32)

Obtiene el nombre del campo que se va a buscar.

GetOrdinal(String)

Devuelve el índice del campo con nombre.

GetString(Int32)

Obtiene el valor de cadena del campo especificado.

GetValue(Int32)

Devuelve el valor del campo especificado.

GetValues(Object[])

Rellena una matriz de objetos con los valores de columna del registro actual.

IsDBNull(Int32)

Devuelve si el campo especificado está establecido en NULL.

Se aplica a