SqlDataReader Clase

Definición

Ofrece una manera de leer un flujo de filas de solo avance desde una base de datos de SQL Server. Esta clase no puede heredarse.

public ref class SqlDataReader : System::Data::Common::DbDataReader, IDisposable
public ref class SqlDataReader sealed : MarshalByRefObject, IDisposable, System::Collections::IEnumerable, System::Data::IDataReader
public ref class SqlDataReader : System::Data::Common::DbDataReader, System::Data::Common::IDbColumnSchemaGenerator
public class SqlDataReader : System.Data.Common.DbDataReader, IDisposable
public sealed class SqlDataReader : MarshalByRefObject, IDisposable, System.Collections.IEnumerable, System.Data.IDataReader
public class SqlDataReader : System.Data.Common.DbDataReader, System.Data.Common.IDbColumnSchemaGenerator
type SqlDataReader = class
    inherit DbDataReader
    interface IDisposable
type SqlDataReader = class
    inherit MarshalByRefObject
    interface IEnumerable
    interface IDataReader
    interface IDisposable
    interface IDataRecord
type SqlDataReader = class
    inherit DbDataReader
    interface IDataReader
    interface IDisposable
    interface IDataRecord
type SqlDataReader = class
    inherit DbDataReader
    interface IDataReader
    interface IDataRecord
    interface IDisposable
    interface IDbColumnSchemaGenerator
Public Class SqlDataReader
Inherits DbDataReader
Implements IDisposable
Public NotInheritable Class SqlDataReader
Inherits MarshalByRefObject
Implements IDataReader, IDisposable, IEnumerable
Public Class SqlDataReader
Inherits DbDataReader
Implements IDbColumnSchemaGenerator
Herencia
SqlDataReader
Herencia
Herencia
SqlDataReader
Implementaciones

Ejemplos

En el ejemplo siguiente se crea un SqlConnectionobjeto , y SqlCommand.SqlDataReader En el ejemplo se leen los datos y se escribe en la ventana de la consola. A continuación, el código cierra .SqlDataReader SqlConnection Se cierra automáticamente al final del using bloque de código.

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

Para crear un SqlDataReader, debe llamar al ExecuteReader método del SqlCommand objeto, en lugar de usar directamente un constructor.

Mientras se usa , SqlDataReader el asociado SqlConnection está ocupado atendiendo a SqlDataReader, y no se puede realizar ninguna otra operación en el SqlConnection otro que no sea cerrarla. Este es el caso hasta que se llama al Close método de .SqlDataReader Por ejemplo, no se pueden recuperar parámetros de salida hasta después de llamar a Close.

Los cambios que otro proceso o subproceso realicen en un conjunto de resultados mientras se leen datos pueden ser visibles para el usuario de la SqlDataReader. Sin embargo, el comportamiento exacto depende de la sincronización.

IsClosed y RecordsAffected son las únicas propiedades a las que se puede llamar una vez cerrada la SqlDataReader. Aunque se puede tener acceso a la RecordsAffected propiedad mientras SqlDataReader existe, llame Close siempre a antes de devolver el valor de RecordsAffected para garantizar un valor devuelto preciso.

Cuando se usa el acceso secuencial (CommandBehavior.SequentialAccess), se generará una InvalidOperationException excepción si la SqlDataReader posición está avanzada y se intenta realizar otra operación de lectura en la columna anterior.

Nota

Para obtener un rendimiento óptimo, SqlDataReader evita crear objetos innecesarios o realizar copias innecesarias de datos. Por lo tanto, varias llamadas a métodos como GetValue devolver una referencia al mismo objeto. Tenga cuidado si va a modificar el valor subyacente de los objetos devueltos por métodos como GetValue.

Propiedades

Connection

Obtiene la SqlConnection asociada a la SqlDataReader.

Depth

Obtiene un valor que indica la profundidad del anidamiento de la fila actual.

FieldCount

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

HasRows

Obtiene un valor que indica si SqlDataReader contiene una o varias filas.

IsClosed

Recupera un valor de tipo Boolean que indica si se ha cerrado la instancia de SqlDataReader especificada.

Item[Int32]

Obtiene el valor de la columna especificada en su formato nativo si se da el índice de columna.

Item[String]

Obtiene el valor de la columna especificada en su formato nativo si se da el nombre de la columna.

RecordsAffected

Obtiene el número de filas cambiadas, insertadas o eliminadas por la ejecución de una instrucción de Transact-SQL.

VisibleFieldCount

Obtiene el número de campos de SqlDataReader que no están ocultos.

Métodos

Close()

Cierra el objeto SqlDataReader.

Close()

Cierra el objeto DbDataReader.

(Heredado de DbDataReader)
CloseAsync()

Cierra de forma asincrónica el objeto DbDataReader.

(Heredado de DbDataReader)
CreateObjRef(Type)

Crea un objeto que contiene toda la información relevante necesaria para generar un proxy utilizado para comunicarse con un objeto remoto.

(Heredado de MarshalByRefObject)
Dispose()

Libera todos los recursos usados por la instancia actual de la clase DbDataReader.

(Heredado de DbDataReader)
Dispose(Boolean)

Ofrece una manera de leer un flujo de filas de solo avance desde una base de datos de SQL Server. Esta clase no puede heredarse.

Dispose(Boolean)

Libera los recursos no administrados que usa DbDataReader y, de forma opcional, libera los recursos administrados.

(Heredado de DbDataReader)
DisposeAsync()

Libera de forma asincrónica todos los recursos que usa la instancia actual de la clase DbDataReader.

(Heredado de DbDataReader)
Equals(Object)

Determina si el objeto especificado es igual que el objeto actual.

(Heredado de Object)
GetBoolean(Int32)

Obtiene el valor de la columna especificada como tipo Boolean.

GetByte(Int32)

Obtiene el valor de la columna especificada como un byte.

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

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

GetChar(Int32)

Obtiene el valor de la columna especificada como un solo carácter.

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.

GetColumnSchema()

Obtiene la colección de esquema de columna de solo lectura.

GetColumnSchemaAsync(CancellationToken)

Esta es la versión asincrónica de GetColumnSchema(DbDataReader). Los proveedores lo deben reemplazar con una implementación apropiada. Opcionalmente, se puede respetar cancellationToken. La implementación predeterminada invoca la llamada sincrónica a GetColumnSchema(DbDataReader) y devuelve una tarea completada. La implementación predeterminada devolverá una tarea cancelada si se pasa un cancellationToken ya cancelado. Las excepciones producidas por GetColumnSchema(DbDataReader) se comunicarán mediante la propiedad Task Exception devuelta.

(Heredado de DbDataReader)
GetData(Int32)

Devuelve un IDataReader para el ordinal de columna especificado.

GetData(Int32)

Devuelve un lector de datos anidados para la columna solicitada.

(Heredado de DbDataReader)
GetDataTypeName(Int32)

Obtiene una cadena que representa el tipo de datos de la columna especificada.

GetDateTime(Int32)

Obtiene el valor de la columna especificada como un objeto DateTime.

GetDateTimeOffset(Int32)

Recupera el valor de la columna especificada como objeto DateTimeOffset.

GetDbDataReader(Int32)

Devuelve un objeto DbDataReader para el índice de columna solicitado que puede ser invalidado con una implementación específica del proveedor.

(Heredado de DbDataReader)
GetDecimal(Int32)

Obtiene el valor de la columna especificada como un objeto Decimal.

GetDouble(Int32)

Obtiene el valor de la columna especificada como un número de punto flotante de doble precisión.

GetEnumerator()

Devuelve un objeto IEnumerator que itera a través del objeto SqlDataReader.

GetFieldType(Int32)

Obtiene el objeto Type que es el tipo de datos del objeto.

GetFieldValue<T>(Int32)

Obtiene de forma sincrónica el valor de la columna especificada como un tipo. GetFieldValueAsync<T>(Int32, CancellationToken) es la versión asincrónica de este método.

GetFieldValue<T>(Int32)

Obtiene el valor de la columna especificada con el tipo solicitado.

(Heredado de DbDataReader)
GetFieldValueAsync<T>(Int32)

Obtiene de manera asincrónica el valor de la columna especificada con el tipo solicitado.

(Heredado de DbDataReader)
GetFieldValueAsync<T>(Int32, CancellationToken)

Obtiene de forma asincrónica el valor de la columna especificada como un tipo. GetFieldValue<T>(Int32) es la versión sincrónica de este método.

GetFieldValueAsync<T>(Int32, CancellationToken)

Obtiene de manera asincrónica el valor de la columna especificada con el tipo solicitado.

(Heredado de DbDataReader)
GetFloat(Int32)

Obtiene el valor de la columna especificada como un número de punto flotante de precisión sencilla.

GetGuid(Int32)

Obtiene el valor de la columna especificada como identificador único global (GUID).

GetHashCode()

Sirve como la función hash predeterminada.

(Heredado de Object)
GetInt16(Int32)

Obtiene el valor de la columna especificada como un entero de 16 bits con signo.

GetInt32(Int32)

Obtiene el valor de la columna especificada como un entero con signo de 32 bits.

GetInt64(Int32)

Obtiene el valor de la columna especificada como un entero de 64 bits con signo.

GetLifetimeService()
Obsoletos.

Recupera el objeto de servicio de duración actual que controla la directiva de duración de esta instancia.

(Heredado de MarshalByRefObject)
GetName(Int32)

Obtiene el nombre de la columna especificada.

GetOrdinal(String)

Obtiene el índice de columna a partir del nombre de la columna determinado.

GetProviderSpecificFieldType(Int32)

Obtiene un Object que es una representación del tipo de campo específico del proveedor subyacente.

GetProviderSpecificValue(Int32)

Obtiene un Object que es una representación del valor específico del proveedor subyacente.

GetProviderSpecificValues(Object[])

Obtiene una matriz de objetos que son una representación de los valores específicos del proveedor subyacentes.

GetSchemaTable()

Devuelve un objeto DataTable que describe los metadatos de columna del SqlDataReader.

GetSchemaTable()

Devuelve un objeto DataTable que describe los metadatos de columna del DbDataReader. Devuelve null si el comando ejecutado no ha devuelto ningún conjunto de resultados, o bien después de que NextResult() devuelva false.

(Heredado de DbDataReader)
GetSchemaTableAsync(CancellationToken)

Esta es la versión asincrónica de GetSchemaTable(). Los proveedores lo deben reemplazar con una implementación apropiada. Opcionalmente, se puede respetar cancellationToken. La implementación predeterminada invoca la llamada sincrónica a GetSchemaTable() y devuelve una tarea completada. La implementación predeterminada devolverá una tarea cancelada si se pasa un cancellationToken ya cancelado. Las excepciones producidas por GetSchemaTable() se comunicarán mediante la propiedad Task Exception devuelta.

(Heredado de DbDataReader)
GetSqlBinary(Int32)

Obtiene el valor de la columna especificada como objeto SqlBinary.

GetSqlBoolean(Int32)

Obtiene el valor de la columna especificada como objeto SqlBoolean.

GetSqlByte(Int32)

Obtiene el valor de la columna especificada como objeto SqlByte.

GetSqlBytes(Int32)

Obtiene el valor de la columna especificada en forma de SqlBytes.

GetSqlChars(Int32)

Obtiene el valor de la columna especificada en forma de SqlChars.

GetSqlDateTime(Int32)

Obtiene el valor de la columna especificada como objeto SqlDateTime.

GetSqlDecimal(Int32)

Obtiene el valor de la columna especificada como objeto SqlDecimal.

GetSqlDouble(Int32)

Obtiene el valor de la columna especificada como objeto SqlDouble.

GetSqlGuid(Int32)

Obtiene el valor de la columna especificada como objeto SqlGuid.

GetSqlInt16(Int32)

Obtiene el valor de la columna especificada como objeto SqlInt16.

GetSqlInt32(Int32)

Obtiene el valor de la columna especificada como objeto SqlInt32.

GetSqlInt64(Int32)

Obtiene el valor de la columna especificada como objeto SqlInt64.

GetSqlMoney(Int32)

Obtiene el valor de la columna especificada como objeto SqlMoney.

GetSqlSingle(Int32)

Obtiene el valor de la columna especificada como objeto SqlSingle.

GetSqlString(Int32)

Obtiene el valor de la columna especificada como objeto SqlString.

GetSqlValue(Int32)

Devuelve el valor de datos de la columna especificada como tipo de SQL Server.

GetSqlValues(Object[])

Rellena una matriz de Object que contiene los valores de todas las columnas en el registro, expresados como tipos de SQL Server.

GetSqlXml(Int32)

Obtiene el valor de la columna especificada como un valor XML.

GetStream(Int32)

Recupera los tipos de datos binary, image, varbinary, UDT y variant como Stream.

GetStream(Int32)

Obtiene un flujo para recuperar datos de la columna especificada.

(Heredado de DbDataReader)
GetString(Int32)

Obtiene el valor de la columna especificada como una cadena.

GetTextReader(Int32)

Recupera los tipos de datos Char, NChar, NText, NVarChar, text, varChar y Variant como TextReader.

GetTextReader(Int32)

Obtiene un lector de texto para recuperar datos de la columna.

(Heredado de DbDataReader)
GetTimeSpan(Int32)

Recupera el valor de la columna especificada como objeto TimeSpan.

GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
GetValue(Int32)

Obtiene el valor de la columna especificada en su formato nativo.

GetValues(Object[])

Rellena una matriz de objetos con los valores de columna de la fila actual.

GetXmlReader(Int32)

Recupera datos de tipo XML como XmlReader.

InitializeLifetimeService()
Obsoletos.

Obtiene un objeto de servicio de duración para controlar la directiva de duración de esta instancia.

(Heredado de MarshalByRefObject)
IsCommandBehavior(CommandBehavior)

Determina si el valor de CommandBehavior especificado coincide con el de SqlDataReader.

IsDBNull(Int32)

Obtiene un valor que indica si la columna contiene valores no existentes o que faltan.

IsDBNullAsync(Int32)

Obtiene de manera asincrónica un valor que indica si la columna contiene valores no existentes o que faltan.

(Heredado de DbDataReader)
IsDBNullAsync(Int32, CancellationToken)

Versión asincrónica de IsDBNull(Int32), que obtiene un valor que indica si la columna contiene valores inexistentes o que faltan.

Token de cancelación que se puede usar para solicitar que se abandone la operación antes de que transcurra el tiempo de espera del comando. Las excepciones se mostrarán a través del objeto Task devuelto.

IsDBNullAsync(Int32, CancellationToken)

Obtiene de manera asincrónica un valor que indica si la columna contiene valores no existentes o que faltan.

(Heredado de DbDataReader)
MemberwiseClone()

Crea una copia superficial del Object actual.

(Heredado de Object)
MemberwiseClone(Boolean)

Crea una copia superficial del objeto MarshalByRefObject actual.

(Heredado de MarshalByRefObject)
NextResult()

Desplaza el lector de datos al siguiente resultado cuando se leen los resultados de las instrucciones de Transact-SQL por lotes.

NextResultAsync()

Hace avanzar de manera asincrónica el lector hasta el resultado siguiente cuando se leen los resultados de un lote de instrucciones.

(Heredado de DbDataReader)
NextResultAsync(CancellationToken)

Una versión asincrónica de NextResult(), que avanza el lector de datos al siguiente resultado, al leer los resultados de las instrucciones Transact-SQL por lotes.

Token de cancelación que se puede usar para solicitar que se abandone la operación antes de que transcurra el tiempo de espera del comando. Las excepciones se mostrarán a través del objeto Task devuelto.

NextResultAsync(CancellationToken)

Hace avanzar de manera asincrónica el lector hasta el resultado siguiente cuando se leen los resultados de un lote de instrucciones.

(Heredado de DbDataReader)
Read()

Desplaza SqlDataReader al siguiente registro.

ReadAsync()

Hace avanzar de manera asincrónica el lector hasta el siguiente registro de un conjunto de resultados.

(Heredado de DbDataReader)
ReadAsync(CancellationToken)

Una versión asincrónica de Read(), que avanza SqlDataReader al registro siguiente.

Token de cancelación que se puede usar para solicitar que se abandone la operación antes de que transcurra el tiempo de espera del comando. Las excepciones se mostrarán a través del objeto Task devuelto.

ReadAsync(CancellationToken)

Hace avanzar de manera asincrónica el lector hasta el siguiente registro de un conjunto de resultados.

(Heredado de DbDataReader)
ToString()

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)

Implementaciones de interfaz explícitas

IDataReader.Close()

Para obtener una descripción de este miembro, vea Close().

(Heredado de DbDataReader)
IDataReader.GetSchemaTable()

Para obtener una descripción de este miembro, vea GetSchemaTable().

(Heredado de DbDataReader)
IDataRecord.GetData(Int32)

Devuelve un IDataReader para el ordinal de columna especificado.

IDataRecord.GetData(Int32)

Para obtener una descripción de este miembro, vea GetData(Int32).

(Heredado de DbDataReader)
IDisposable.Dispose()

Libera todos los recursos utilizados por el lector de datos.

IEnumerable.GetEnumerator()

Devuelve un enumerador que puede utilizarse para recorrer una iteración en la colección de elementos.

Métodos de extensión

CanGetColumnSchema(DbDataReader)

Obtiene un valor que indica si DbDataReader puede obtener un esquema de columna.

GetColumnSchema(DbDataReader)

Obtiene el esquema de columna (colección DbColumn) para DbDataReader.

Cast<TResult>(IEnumerable)

Convierte los elementos de IEnumerable en el tipo especificado.

OfType<TResult>(IEnumerable)

Filtra los elementos de IEnumerable en función de un tipo especificado.

AsParallel(IEnumerable)

Habilita la paralelización de una consulta.

AsQueryable(IEnumerable)

Convierte una interfaz IEnumerable en IQueryable.

Se aplica a

Consulte también