IDataReader Interfaz

Definición

Proporciona un medio para leer una o más secuencias de solo hacia delante de conjuntos de resultados que se obtienen al ejecutar un comando en un origen de datos y se implementa mediante proveedores de datos .NET Framework que tienen acceso a bases de datos relacionales.Provides a means of reading one or more forward-only streams of result sets obtained by executing a command at a data source, and is implemented by .NET Framework data providers that access relational databases.

public interface class IDataReader : IDisposable, System::Data::IDataRecord
public interface IDataReader : IDisposable, System.Data.IDataRecord
type IDataReader = interface
    interface IDisposable
    interface IDataRecord
Public Interface IDataReader
Implements IDataRecord, IDisposable
Derivado
Implementaciones

Ejemplos

En el ejemplo siguiente se crean instancias de las clases SqlConnectionderivadas, SqlDataReader SqlCommand, y.The following example creates instances of the derived classes, SqlConnection, SqlCommand, and SqlDataReader. En el ejemplo se leen los datos y se escriben en la consola.The example reads through the data, writing it out to the console. Finalmente, el ejemplo cierra SqlDataReadery, a continuación, el. SqlConnectionFinally, the example closes the SqlDataReader, 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

Las IDataReader interfaces IDataRecord y permiten que una clase heredada implemente DataReader una clase, que proporciona un medio para leer una o más secuencias de solo avance de conjuntos de resultados.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. Para obtener más información DataReader sobre las clases, vea 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 IDataReader interfaz directamente, sino que crea una instancia de una clase que IDataReaderhereda.An application does not create an instance of the IDataReader interface directly, but creates an instance of a class that inherits IDataReader.

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

Los cambios realizados en un conjunto de resultados por otro proceso o subproceso mientras se leen los datos pueden ser visibles para el usuario de una clase que IDataReaderimplementa.Changes made to a result set by another process or thread while data is being read may be visible to the user of a class that implements an IDataReader. Sin embargo, el comportamiento preciso depende del proveedor y del tiempo.However, the precise behavior is both provider and timing dependent.

Notas a los implementadores

Para promover la coherencia entre .NET Framework proveedores de datos, asigne un nombre a la clase Prv heredada Prv en el comando form, donde es el prefijo uniforme dado a todas las clases de un espacio de nombres de proveedor de datos .NET Framework específico.To promote consistency among .NET Framework data providers, name the inheriting class in the form Prv Command where Prv is the uniform prefix given to all classes in a specific .NET Framework data provider namespace. Por ejemplo, Sql es el prefijo de SqlDataAdapter la clase en System.Data.SqlClient el espacio de nombres.For example, Sql is the prefix of the SqlDataAdapter class in the System.Data.SqlClient namespace.

Los usuarios no crean una instancia de una DataReader clase directamente.Users do not create an instance of a DataReader class directly. En su lugar, obtienen la DataReader instancia a través ExecuteReader del método del Command objeto.Instead, they obtain the DataReader instance through the ExecuteReader method of the Command object. Por lo tanto, debe DataReader marcar los constructores como internos.Therefore, you should mark DataReader constructors as internal.

Propiedades

Depth

Obtiene un valor que indica la profundidad de anidamiento de la fila actual.Gets a value indicating the depth of nesting for the current row.

FieldCount

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

(Heredado de IDataRecord)
IsClosed

Obtiene un valor que indica si el lector de datos está cerrado.Gets a value indicating whether the data reader is closed.

Item[Int32]

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

(Heredado de IDataRecord)
Item[String]

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

(Heredado de IDataRecord)
RecordsAffected

Obtiene el número de filas cambiadas, insertadas o eliminadas mediante la ejecución de la instrucción SQL.Gets the number of rows changed, inserted, or deleted by execution of the SQL statement.

Métodos

Close()

Cierra el objeto IDataReader.Closes the IDataReader Object.

Dispose()

Realiza tareas definidas por la aplicación asociadas a la liberación o al restablecimiento de recursos no administrados.Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.

(Heredado de IDisposable)
GetBoolean(Int32)

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

(Heredado de IDataRecord)
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.

(Heredado de IDataRecord)
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.

(Heredado de IDataRecord)
GetChar(Int32)

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

(Heredado de IDataRecord)
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.

(Heredado de IDataRecord)
GetData(Int32)

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

(Heredado de IDataRecord)
GetDataTypeName(Int32)

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

(Heredado de IDataRecord)
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.

(Heredado de IDataRecord)
GetDecimal(Int32)

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

(Heredado de IDataRecord)
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.

(Heredado de IDataRecord)
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).

(Heredado de IDataRecord)
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.

(Heredado de IDataRecord)
GetGuid(Int32)

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

(Heredado de IDataRecord)
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.

(Heredado de IDataRecord)
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.

(Heredado de IDataRecord)
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.

(Heredado de IDataRecord)
GetName(Int32)

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

(Heredado de IDataRecord)
GetOrdinal(String)

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

(Heredado de IDataRecord)
GetSchemaTable()

Devuelve un objeto DataTable que describe los metadatos de columna del IDataReader.Returns a DataTable that describes the column metadata of the IDataReader.

GetString(Int32)

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

(Heredado de IDataRecord)
GetValue(Int32)

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

(Heredado de IDataRecord)
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.

(Heredado de IDataRecord)
IsDBNull(Int32)

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

(Heredado de IDataRecord)
NextResult()

Hace avanzar el lector de datos hasta el resultado siguiente, cuando se leen los resultados instrucciones SQL por lotes.Advances the data reader to the next result, when reading the results of batch SQL statements.

Read()

Desplaza IDataReader al siguiente registro.Advances the IDataReader to the next record.

Se aplica a