Lenguaje

SqlDataReader Clase

Definición

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

Para el nuevo desarrollo, use Microsoft. Data.SqlClient. Esta página documenta System.Data.SqlClient.

public ref class SqlDataReader : System::Data::Common::DbDataReader, IDisposable
public ref class SqlDataReader sealed : MarshalByRefObject, IDisposable, System::Collections::IEnumerable, System::Data::IDataReader
public class SqlDataReader : System.Data.Common.DbDataReader, IDisposable
public sealed class SqlDataReader : MarshalByRefObject, IDisposable, System.Collections.IEnumerable, System.Data.IDataReader
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
Public Class SqlDataReader
Inherits DbDataReader
Implements IDisposable
Public NotInheritable Class SqlDataReader
Inherits MarshalByRefObject
Implements IDataReader, IDisposable, IEnumerable
Herencia
SqlDataReader
Herencia
Herencia
SqlDataReader
Implementaciones

Ejemplos

En el ejemplo siguiente se crea un SqlConnection, un SqlCommandy un 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.

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

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

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

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 SqlDataReader. Sin embargo, el comportamiento preciso depende del tiempo.

IsClosedy RecordsAffected son las únicas propiedades a las que se puede llamar después de cerrar .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.

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

Note

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 está modificando el valor subyacente de los objetos devueltos por métodos como GetValue.

Propiedades

Nombre Description
Connection

Obtiene el SqlConnection objeto asociado a .SqlDataReader

Para el nuevo desarrollo, use Microsoft. Data.SqlClient. Esta página documenta System.Data.SqlClient.

Depth

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

Para el nuevo desarrollo, use Microsoft. Data.SqlClient. Esta página documenta System.Data.SqlClient.

FieldCount

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

Para el nuevo desarrollo, use Microsoft. Data.SqlClient. Esta página documenta System.Data.SqlClient.

HasRows

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

Para el nuevo desarrollo, use Microsoft. Data.SqlClient. Esta página documenta System.Data.SqlClient.

IsClosed

Recupera un valor booleano que indica si se ha cerrado la instancia especificada SqlDataReader .

Para el nuevo desarrollo, use Microsoft. Data.SqlClient. Esta página documenta System.Data.SqlClient.

Item[Int32]

Obtiene el valor de la columna especificada en su formato nativo según el ordinal de columna.

Para el nuevo desarrollo, use Microsoft. Data.SqlClient. Esta página documenta System.Data.SqlClient.

Item[String]

Obtiene el valor de la columna especificada en su formato nativo según el nombre de columna.

Para el nuevo desarrollo, use Microsoft. Data.SqlClient. Esta página documenta System.Data.SqlClient.

RecordsAffected

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

Para el nuevo desarrollo, use Microsoft. Data.SqlClient. Esta página documenta System.Data.SqlClient.

VisibleFieldCount

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

Para el nuevo desarrollo, use Microsoft. Data.SqlClient. Esta página documenta System.Data.SqlClient.

Métodos

Nombre Description
Close()

Cierra el SqlDataReader objeto .

Para el nuevo desarrollo, use Microsoft. Data.SqlClient. Esta página documenta System.Data.SqlClient.

CreateObjRef(Type)

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

(Heredado de MarshalByRefObject)
Dispose()

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

(Heredado de DbDataReader)
Dispose(Boolean)

Libera los recursos no administrados utilizados por DbDataReader y, opcionalmente, libera los recursos administrados.

(Heredado de DbDataReader)
Equals(Object)

Determina si el objeto especificado es igual al objeto actual.

(Heredado de Object)
GetBoolean(Int32)

Obtiene el valor de la columna especificada como booleano.

Para el nuevo desarrollo, use Microsoft. Data.SqlClient. Esta página documenta System.Data.SqlClient.

GetByte(Int32)

Obtiene el valor de la columna especificada como un byte.

Para el nuevo desarrollo, use Microsoft. Data.SqlClient. Esta página documenta System.Data.SqlClient.

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

Lee un flujo de bytes del desplazamiento de columna especificado en el búfer una matriz que comienza en el desplazamiento del búfer especificado.

Para el nuevo desarrollo, use Microsoft. Data.SqlClient. Esta página documenta System.Data.SqlClient.

GetChar(Int32)

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

Para el nuevo desarrollo, use Microsoft. Data.SqlClient. Esta página documenta System.Data.SqlClient.

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

Lee una secuencia de caracteres del desplazamiento de columna especificado en el búfer como una matriz que comienza en el desplazamiento del búfer especificado.

Para el nuevo desarrollo, use Microsoft. Data.SqlClient. Esta página documenta System.Data.SqlClient.

GetData(Int32)

Devuelve un IDataReader para el ordinal de columna especificado.

Para el nuevo desarrollo, use Microsoft. Data.SqlClient. Esta página documenta System.Data.SqlClient.

GetData(Int32)

Devuelve un lector de datos anidado para la columna solicitada.

(Heredado de DbDataReader)
GetDataTypeName(Int32)

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

Para el nuevo desarrollo, use Microsoft. Data.SqlClient. Esta página documenta System.Data.SqlClient.

GetDateTime(Int32)

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

Para el nuevo desarrollo, use Microsoft. Data.SqlClient. Esta página documenta System.Data.SqlClient.

GetDateTimeOffset(Int32)

Recupera el valor de la columna especificada como un DateTimeOffset objeto .

Para el nuevo desarrollo, use Microsoft. Data.SqlClient. Esta página documenta System.Data.SqlClient.

GetDbDataReader(Int32)

Devuelve un DbDataReader objeto para el ordinal de columna solicitado que se puede invalidar con una implementación específica del proveedor.

(Heredado de DbDataReader)
GetDecimal(Int32)

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

Para el nuevo desarrollo, use Microsoft. Data.SqlClient. Esta página documenta System.Data.SqlClient.

GetDouble(Int32)

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

Para el nuevo desarrollo, use Microsoft. Data.SqlClient. Esta página documenta System.Data.SqlClient.

GetEnumerator()

Devuelve un IEnumerator objeto que recorre en iteración .SqlDataReader

Para el nuevo desarrollo, use Microsoft. Data.SqlClient. Esta página documenta System.Data.SqlClient.

GetFieldType(Int32)

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

Para el nuevo desarrollo, use Microsoft. Data.SqlClient. Esta página documenta System.Data.SqlClient.

GetFieldValue<T>(Int32)

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

Para el nuevo desarrollo, use Microsoft. Data.SqlClient. Esta página documenta System.Data.SqlClient.

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.

Para el nuevo desarrollo, use Microsoft. Data.SqlClient. Esta página documenta System.Data.SqlClient.

GetFieldValueAsync<T>(Int32)

Obtiene de forma asincrónica el valor de la columna especificada como 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.

Para el nuevo desarrollo, use Microsoft. Data.SqlClient. Esta página documenta System.Data.SqlClient.

GetGuid(Int32)

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

Para el nuevo desarrollo, use Microsoft. Data.SqlClient. Esta página documenta System.Data.SqlClient.

GetHashCode()

Actúa como función hash predeterminada.

(Heredado de Object)
GetInt16(Int32)

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

Para el nuevo desarrollo, use Microsoft. Data.SqlClient. Esta página documenta System.Data.SqlClient.

GetInt32(Int32)

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

Para el nuevo desarrollo, use Microsoft. Data.SqlClient. Esta página documenta System.Data.SqlClient.

GetInt64(Int32)

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

Para el nuevo desarrollo, use Microsoft. Data.SqlClient. Esta página documenta System.Data.SqlClient.

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.

Para el nuevo desarrollo, use Microsoft. Data.SqlClient. Esta página documenta System.Data.SqlClient.

GetOrdinal(String)

Obtiene el ordinal de columna, dado el nombre de la columna.

Para el nuevo desarrollo, use Microsoft. Data.SqlClient. Esta página documenta System.Data.SqlClient.

GetProviderSpecificFieldType(Int32)

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

Para el nuevo desarrollo, use Microsoft. Data.SqlClient. Esta página documenta System.Data.SqlClient.

GetProviderSpecificValue(Int32)

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

Para el nuevo desarrollo, use Microsoft. Data.SqlClient. Esta página documenta System.Data.SqlClient.

GetProviderSpecificValues(Object[])

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

Para el nuevo desarrollo, use Microsoft. Data.SqlClient. Esta página documenta System.Data.SqlClient.

GetSchemaTable()

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

Para el nuevo desarrollo, use Microsoft. Data.SqlClient. Esta página documenta System.Data.SqlClient.

GetSqlBinary(Int32)

Obtiene el valor de la columna especificada como .SqlBinary

Para el nuevo desarrollo, use Microsoft. Data.SqlClient. Esta página documenta System.Data.SqlClient.

GetSqlBoolean(Int32)

Obtiene el valor de la columna especificada como .SqlBoolean

Para el nuevo desarrollo, use Microsoft. Data.SqlClient. Esta página documenta System.Data.SqlClient.

GetSqlByte(Int32)

Obtiene el valor de la columna especificada como .SqlByte

Para el nuevo desarrollo, use Microsoft. Data.SqlClient. Esta página documenta System.Data.SqlClient.

GetSqlBytes(Int32)

Obtiene el valor de la columna especificada como SqlBytes.

Para el nuevo desarrollo, use Microsoft. Data.SqlClient. Esta página documenta System.Data.SqlClient.

GetSqlChars(Int32)

Obtiene el valor de la columna especificada como SqlChars.

Para el nuevo desarrollo, use Microsoft. Data.SqlClient. Esta página documenta System.Data.SqlClient.

GetSqlDateTime(Int32)

Obtiene el valor de la columna especificada como .SqlDateTime

Para el nuevo desarrollo, use Microsoft. Data.SqlClient. Esta página documenta System.Data.SqlClient.

GetSqlDecimal(Int32)

Obtiene el valor de la columna especificada como .SqlDecimal

Para el nuevo desarrollo, use Microsoft. Data.SqlClient. Esta página documenta System.Data.SqlClient.

GetSqlDouble(Int32)

Obtiene el valor de la columna especificada como .SqlDouble

Para el nuevo desarrollo, use Microsoft. Data.SqlClient. Esta página documenta System.Data.SqlClient.

GetSqlGuid(Int32)

Obtiene el valor de la columna especificada como .SqlGuid

Para el nuevo desarrollo, use Microsoft. Data.SqlClient. Esta página documenta System.Data.SqlClient.

GetSqlInt16(Int32)

Obtiene el valor de la columna especificada como .SqlInt16

Para el nuevo desarrollo, use Microsoft. Data.SqlClient. Esta página documenta System.Data.SqlClient.

GetSqlInt32(Int32)

Obtiene el valor de la columna especificada como .SqlInt32

Para el nuevo desarrollo, use Microsoft. Data.SqlClient. Esta página documenta System.Data.SqlClient.

GetSqlInt64(Int32)

Obtiene el valor de la columna especificada como .SqlInt64

Para el nuevo desarrollo, use Microsoft. Data.SqlClient. Esta página documenta System.Data.SqlClient.

GetSqlMoney(Int32)

Obtiene el valor de la columna especificada como .SqlMoney

Para el nuevo desarrollo, use Microsoft. Data.SqlClient. Esta página documenta System.Data.SqlClient.

GetSqlSingle(Int32)

Obtiene el valor de la columna especificada como .SqlSingle

Para el nuevo desarrollo, use Microsoft. Data.SqlClient. Esta página documenta System.Data.SqlClient.

GetSqlString(Int32)

Obtiene el valor de la columna especificada como .SqlString

Para el nuevo desarrollo, use Microsoft. Data.SqlClient. Esta página documenta System.Data.SqlClient.

GetSqlValue(Int32)

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

Para el nuevo desarrollo, use Microsoft. Data.SqlClient. Esta página documenta System.Data.SqlClient.

GetSqlValues(Object[])

Rellena una matriz de Object que contiene los valores de todas las columnas del registro, expresadas como tipos de SQL Server.

Para el nuevo desarrollo, use Microsoft. Data.SqlClient. Esta página documenta System.Data.SqlClient.

GetSqlXml(Int32)

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

Para el nuevo desarrollo, use Microsoft. Data.SqlClient. Esta página documenta System.Data.SqlClient.

GetStream(Int32)

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

Para el nuevo desarrollo, use Microsoft. Data.SqlClient. Esta página documenta System.Data.SqlClient.

GetString(Int32)

Obtiene el valor de la columna especificada como una cadena.

Para el nuevo desarrollo, use Microsoft. Data.SqlClient. Esta página documenta System.Data.SqlClient.

GetTextReader(Int32)

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

Para el nuevo desarrollo, use Microsoft. Data.SqlClient. Esta página documenta System.Data.SqlClient.

GetTimeSpan(Int32)

Recupera el valor de la columna especificada como un TimeSpan objeto .

Para el nuevo desarrollo, use Microsoft. Data.SqlClient. Esta página documenta System.Data.SqlClient.

GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
GetValue(Int32)

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

Para el nuevo desarrollo, use Microsoft. Data.SqlClient. Esta página documenta System.Data.SqlClient.

GetValues(Object[])

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

Para el nuevo desarrollo, use Microsoft. Data.SqlClient. Esta página documenta System.Data.SqlClient.

GetXmlReader(Int32)

Recupera datos de tipo XML como .XmlReader

Para el nuevo desarrollo, use Microsoft. Data.SqlClient. Esta página documenta System.Data.SqlClient.

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 objeto especificado CommandBehavior coincide con el SqlDataReader de .

Para el nuevo desarrollo, use Microsoft. Data.SqlClient. Esta página documenta System.Data.SqlClient.

IsDBNull(Int32)

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

Para el nuevo desarrollo, use Microsoft. Data.SqlClient. Esta página documenta System.Data.SqlClient.

IsDBNullAsync(Int32, CancellationToken)

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

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

Para el nuevo desarrollo, use Microsoft. Data.SqlClient. Esta página documenta System.Data.SqlClient.

IsDBNullAsync(Int32)

Obtiene de forma asincrónica un valor que indica si la columna contiene valores inexistentes o que faltan.

(Heredado de DbDataReader)
MemberwiseClone()

Crea una copia superficial del Objectactual.

(Heredado de Object)
MemberwiseClone(Boolean)

Crea una copia superficial del objeto actual MarshalByRefObject .

(Heredado de MarshalByRefObject)
NextResult()

Hace avanzar el lector de datos al siguiente resultado, al leer los resultados de las instrucciones de Transact-SQL por lotes.

Para el nuevo desarrollo, use Microsoft. Data.SqlClient. Esta página documenta System.Data.SqlClient.

NextResultAsync()

Avanza de forma asincrónica el lector al siguiente resultado al leer 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 de Transact-SQL por lotes.

      The cancellation token can be used to request that the operation be abandoned before the command timeout elapses. Exceptions will be reported via the returned Task object.

      <p>For new development, use <a href="/sql/connect/ado-net/introduction-microsoft-data-sqlclient-namespace">Microsoft.Data.SqlClient</a>. This page documents System.Data.SqlClient.</p>
Read()

Avanza hasta SqlDataReader el siguiente registro.

Para el nuevo desarrollo, use Microsoft. Data.SqlClient. Esta página documenta System.Data.SqlClient.

ReadAsync()

Avanza de forma asincrónica el lector al siguiente registro de un conjunto de resultados.

(Heredado de DbDataReader)
ReadAsync(CancellationToken)

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

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

Para el nuevo desarrollo, use Microsoft. Data.SqlClient. Esta página documenta System.Data.SqlClient.

ToString()

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)

Implementaciones de interfaz explícitas

Nombre Description
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.

Para el nuevo desarrollo, use Microsoft. Data.SqlClient. Esta página documenta System.Data.SqlClient.

IDataRecord.GetData(Int32)

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

(Heredado de DbDataReader)
IDisposable.Dispose()

Libera todos los recursos que usa el lector de datos.

Para el nuevo desarrollo, use Microsoft. Data.SqlClient. Esta página documenta System.Data.SqlClient.

IEnumerable.GetEnumerator()

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

Para el nuevo desarrollo, use Microsoft. Data.SqlClient. Esta página documenta System.Data.SqlClient.

Métodos de extensión

Nombre Description
AsParallel(IEnumerable)

Habilita la paralelización de una consulta.

AsQueryable(IEnumerable)

Convierte un IEnumerable en un IQueryable.

CanGetColumnSchema(DbDataReader)

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

Cast<TResult>(IEnumerable)

Convierte los elementos de un IEnumerable al tipo especificado.

GetColumnSchema(DbDataReader)

Obtiene el esquema de columna (DbColumn colección) de un DbDataReaderobjeto .

OfType<TResult>(IEnumerable)

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

Se aplica a

Consulte también