Compartir por


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.

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.

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 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

Depth

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

FieldCount

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

HasRows

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

IsClosed

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

Item[Int32]

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

Item[String]

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

RecordsAffected

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

VisibleFieldCount

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

Métodos

Nombre Description
Close()

Cierra el SqlDataReader objeto .

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.

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 una matriz que comienza en el desplazamiento del búfer especificado.

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 que comienza en el desplazamiento del búfer especificado.

GetData(Int32)

Devuelve un IDataReader para el ordinal de columna especificado.

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.

GetDateTime(Int32)

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

GetDateTimeOffset(Int32)

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

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 .

GetDouble(Int32)

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

GetEnumerator()

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

GetFieldType(Int32)

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

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.

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)

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.

GetGuid(Int32)

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

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.

GetInt32(Int32)

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

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 ordinal de columna, dado el nombre de la columna.

GetProviderSpecificFieldType(Int32)

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

GetProviderSpecificValue(Int32)

Obtiene un que Object 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 subyacente.

GetSchemaTable()

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

GetSqlBinary(Int32)

Obtiene el valor de la columna especificada como .SqlBinary

GetSqlBoolean(Int32)

Obtiene el valor de la columna especificada como .SqlBoolean

GetSqlByte(Int32)

Obtiene el valor de la columna especificada como .SqlByte

GetSqlBytes(Int32)

Obtiene el valor de la columna especificada como SqlBytes.

GetSqlChars(Int32)

Obtiene el valor de la columna especificada como SqlChars.

GetSqlDateTime(Int32)

Obtiene el valor de la columna especificada como .SqlDateTime

GetSqlDecimal(Int32)

Obtiene el valor de la columna especificada como .SqlDecimal

GetSqlDouble(Int32)

Obtiene el valor de la columna especificada como .SqlDouble

GetSqlGuid(Int32)

Obtiene el valor de la columna especificada como .SqlGuid

GetSqlInt16(Int32)

Obtiene el valor de la columna especificada como .SqlInt16

GetSqlInt32(Int32)

Obtiene el valor de la columna especificada como .SqlInt32

GetSqlInt64(Int32)

Obtiene el valor de la columna especificada como .SqlInt64

GetSqlMoney(Int32)

Obtiene el valor de la columna especificada como .SqlMoney

GetSqlSingle(Int32)

Obtiene el valor de la columna especificada como .SqlSingle

GetSqlString(Int32)

Obtiene el valor de la columna especificada como .SqlString

GetSqlValue(Int32)

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

GetSqlValues(Object[])

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

GetSqlXml(Int32)

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

GetStream(Int32)

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

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

GetTimeSpan(Int32)

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

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

IsDBNull(Int32)

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

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.

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.

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.

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.

Read()

Avanza hasta SqlDataReader el siguiente registro.

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.

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.

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.

IEnumerable.GetEnumerator()

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

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