Exportar (0) Imprimir
Expandir todo
Este artículo proviene de un motor de traducción automática. Mueva el puntero sobre las frases del artículo para ver el texto original. Más información.
Traducción
Original

SqlDataReader (Clase)

Proporciona una forma de leer una secuencia de filas sólo hacia delante en una base de datos de SQL Server. Esta clase no puede heredarse.

Espacio de nombres:  System.Data.SqlClient
Ensamblado:  System.Data (en System.Data.dll)

public class SqlDataReader : DbDataReader, 
	IDataReader, IDisposable, IDataRecord

El tipo SqlDataReader expone los siguientes miembros.

  NombreDescripción
Propiedad protegidaConnectionObtiene el objeto SqlConnection asociado a SqlDataReader.
Propiedad públicaDepthObtiene un valor que indica la profundidad del anidamiento de la fila actual. (Invalida a DbDataReader.Depth).
Propiedad públicaFieldCountObtiene el número de columnas de la fila actual. (Invalida a DbDataReader.FieldCount).
Propiedad públicaHasRowsObtiene un valor que indica si el objeto SqlDataReader contiene una o varias filas. (Invalida a DbDataReader.HasRows).
Propiedad públicaIsClosedRecupera un valor de tipo Boolean que indica si se ha cerrado la instancia de SqlDataReader especificada. (Invalida a DbDataReader.IsClosed).
Propiedad públicaItem[Int32]Obtiene el valor de la columna especificada en su formato nativo si se da el índice de columna. (Invalida a DbDataReader.Item).
Propiedad públicaItem[String]Obtiene el valor de la columna especificada en su formato nativo si se da el nombre de la columna. (Invalida a DbDataReader.Item).
Propiedad públicaRecordsAffectedObtiene el número de filas cambiadas, insertadas o eliminadas por la ejecución de una instrucción de Transact-SQL. (Invalida a DbDataReader.RecordsAffected).
Propiedad públicaVisibleFieldCountObtiene el número de campos de SqlDataReader que no están ocultos. (Invalida a DbDataReader.VisibleFieldCount).
Arriba

  NombreDescripción
Método públicoCloseCierra el objeto SqlDataReader. (Invalida a DbDataReader.Close()).
Método públicoCreateObjRefCrea un objeto que contiene toda la información relevante necesaria para generar un proxy utilizado para comunicarse con un objeto remoto. (Se hereda de MarshalByRefObject).
Método públicoDispose()Libera todos los recursos usados por la instancia actual de la clase DbDataReader. (Se hereda de DbDataReader).
Método protegidoDispose(Boolean)Libera los recursos no administrados que utiliza DbDataReader y, opcionalmente, también libera los recursos administrados. (Se hereda de DbDataReader).
Método públicoEquals(Object)Determina si el objeto especificado es igual al objeto actual. (Se hereda de Object).
Método protegidoFinalize Permite que un objeto intente liberar recursos y realizar otras operaciones de limpieza antes de ser reclamado por la recolección de elementos no utilizados. (Se hereda de Object).
Método públicoGetBooleanObtiene el valor de la columna especificada como tipo Boolean. (Invalida a DbDataReader.GetBoolean(Int32)).
Método públicoGetByteObtiene el valor de la columna especificada como byte. (Invalida a DbDataReader.GetByte(Int32)).
Método públicoGetBytesLee una secuencia de bytes a partir del desplazamiento de la columna especificada en el búfer como una matriz que se inicia en el desplazamiento del búfer dado. (Invalida a DbDataReader.GetBytes(Int32, Int64, Byte[], Int32, Int32)).
Método públicoGetCharObtiene el valor de la columna especificada como un único carácter. (Invalida a DbDataReader.GetChar(Int32)).
Método públicoGetCharsLee una secuencia de caracteres del desplazamiento de columna que se haya especificado en el búfer como matriz, comenzando en el desplazamiento de búfer dado. (Invalida a DbDataReader.GetChars(Int32, Int64, Char[], Int32, Int32)).
Método públicoGetDataDevuelve un objeto DbDataReader para el índice de columna solicitado. (Se hereda de DbDataReader).
Método públicoGetDataTypeNameObtiene una cadena que representa el tipo de datos de la columna especificada. (Invalida a DbDataReader.GetDataTypeName(Int32)).
Método públicoGetDateTimeObtiene el valor de la columna especificada como objeto DateTime. (Invalida a DbDataReader.GetDateTime(Int32)).
Método públicoGetDateTimeOffsetRecupera el valor de la columna especificada como objeto DateTimeOffset.
Método protegidoGetDbDataReaderDevuelve un objeto DbDataReader para el índice de columna solicitado que se puede reemplazar con una implementación específica del proveedor. (Se hereda de DbDataReader).
Método públicoGetDecimalObtiene el valor de la columna especificada como objeto Decimal. (Invalida a DbDataReader.GetDecimal(Int32)).
Método públicoGetDoubleObtiene el valor de la columna especificada como un número de punto flotante de precisión doble. (Invalida a DbDataReader.GetDouble(Int32)).
Método públicoGetEnumeratorDevuelve un IEnumerator que recorre en iteración SqlDataReader. (Invalida a DbDataReader.GetEnumerator()).
Método públicoGetFieldTypeObtiene el objeto Type que es el tipo de datos del objeto. (Invalida a DbDataReader.GetFieldType(Int32)).
Método públicoGetFieldValue<T>Obtiene de forma sincrónica el valor de la columna especificada como un tipo. GetFieldValueAsync es la versión asincrónica de este método. (Invalida a DbDataReader.GetFieldValue<T>(Int32)).
Método públicoGetFieldValueAsync<T>(Int32)Obtiene de forma asincrónica el valor de la columna especificada como un tipo. (Se hereda de DbDataReader).
Método públicoGetFieldValueAsync<T>(Int32, CancellationToken)Obtiene de forma asincrónica el valor de la columna especificada como un tipo. GetFieldValue<T> es la versión sincrónica de este método. (Invalida a DbDataReader.GetFieldValueAsync<T>(Int32, CancellationToken)).
Método públicoGetFloatObtiene el valor de la columna especificada como un número de punto flotante de precisión sencilla. (Invalida a DbDataReader.GetFloat(Int32)).
Método públicoGetGuidObtiene el valor de la columna especificada en forma de identificador global único (GUID). (Invalida a DbDataReader.GetGuid(Int32)).
Método públicoGetHashCode Sirve como una función hash para un tipo en particular. (Se hereda de Object).
Método públicoGetInt16Obtiene el valor de la columna especificada como un entero de 16 bits con signo. (Invalida a DbDataReader.GetInt16(Int32)).
Método públicoGetInt32Obtiene el valor de la columna especificada como un entero de 32 bits con signo. (Invalida a DbDataReader.GetInt32(Int32)).
Método públicoGetInt64Obtiene el valor de la columna especificada como un entero de 64 bits con signo. (Invalida a DbDataReader.GetInt64(Int32)).
Método públicoGetLifetimeServiceRecupera el objeto de servicio de duración actual que controla la directiva de duración de esta instancia. (Se hereda de MarshalByRefObject).
Método públicoGetNameObtiene el nombre de la columna especificada. (Invalida a DbDataReader.GetName(Int32)).
Método públicoGetOrdinalObtiene el índice de columna a partir del nombre de la columna determinado. (Invalida a DbDataReader.GetOrdinal(String)).
Método públicoGetProviderSpecificFieldTypeObtiene un Object que es una representación del tipo de campo específico del proveedor subyacente. (Invalida a DbDataReader.GetProviderSpecificFieldType(Int32)).
Método públicoGetProviderSpecificValueObtiene un Object que es una representación del valor específico del proveedor subyacente. (Invalida a DbDataReader.GetProviderSpecificValue(Int32)).
Método públicoGetProviderSpecificValuesObtiene una matriz de objetos que son una representación de los valores específicos del proveedor subyacentes. (Invalida a DbDataReader.GetProviderSpecificValues(Object[])).
Método públicoGetSchemaTableDevuelve una DataTable que describe los metadatos de columna del SqlDataReader. (Invalida a DbDataReader.GetSchemaTable()).
Método públicoGetSqlBinaryObtiene el valor de la columna especificada en forma de SqlBinary.
Método públicoGetSqlBooleanObtiene el valor de la columna especificada en forma de SqlBoolean.
Método públicoGetSqlByteObtiene el valor de la columna especificada en forma de SqlByte.
Método públicoGetSqlBytesObtiene el valor de la columna especificada en forma de SqlBytes.
Método públicoGetSqlCharsObtiene el valor de la columna especificada en forma de SqlChars.
Método públicoGetSqlDateTimeObtiene el valor de la columna especificada en forma de SqlDateTime.
Método públicoGetSqlDecimalObtiene el valor de la columna especificada en forma de SqlDecimal.
Método públicoGetSqlDoubleObtiene el valor de la columna especificada en forma de SqlDouble.
Método públicoGetSqlGuidObtiene el valor de la columna especificada en forma de SqlGuid.
Método públicoGetSqlInt16Obtiene el valor de la columna especificada en forma de SqlInt16.
Método públicoGetSqlInt32Obtiene el valor de la columna especificada en forma de SqlInt32.
Método públicoGetSqlInt64Obtiene el valor de la columna especificada en forma de SqlInt64.
Método públicoGetSqlMoneyObtiene el valor de la columna especificada en forma de SqlMoney.
Método públicoGetSqlSingleObtiene el valor de la columna especificada en forma de SqlSingle.
Método públicoGetSqlStringObtiene el valor de la columna especificada en forma de SqlString.
Método públicoGetSqlValueDevuelve el valor de datos de la columna especificada como tipo de SQL Server.
Método públicoGetSqlValuesRellena una matriz de Object que contiene los valores de todas las columnas en el registro, expresados como tipos de SQL Server.
Método públicoGetSqlXmlObtiene el valor de la columna especificada como un valor XML.
Método públicoGetStreamRecupera los tipos de datos binary, image, varbinary, UDT y variant como Stream. (Invalida a DbDataReader.GetStream(Int32)).
Método públicoGetStringObtiene el valor de la columna especificada como una cadena. (Invalida a DbDataReader.GetString(Int32)).
Método públicoGetTextReaderRecupera los tipos de datos Char, NChar, NText, NVarChar, text, varChar y Variant como TextReader. (Invalida a DbDataReader.GetTextReader(Int32)).
Método públicoGetTimeSpanRecupera el valor de la columna especificada como objeto TimeSpan.
Método públicoGetType Obtiene el Type de la instancia actual. (Se hereda de Object).
Método públicoGetValueObtiene el valor de la columna especificada en su formato nativo. (Invalida a DbDataReader.GetValue(Int32)).
Método públicoGetValuesRellena una matriz de objetos con los valores de columna de la fila actual. (Invalida a DbDataReader.GetValues(Object[])).
Método públicoGetXmlReaderRecupera datos de tipo XML como XmlReader.
Método públicoInitializeLifetimeServiceObtiene un objeto de servicio de duración para controlar la directiva de duración de esta instancia. (Se hereda de MarshalByRefObject).
Método protegidoIsCommandBehaviorDetermina si el valor de CommandBehavior especificado coincide con el de SqlDataReader.
Método públicoIsDBNullObtiene un valor que indica si la columna contiene valores no existentes o que faltan. (Invalida a DbDataReader.IsDBNull(Int32)).
Método públicoIsDBNullAsync(Int32)Versión asincrónica de IsDBNull, que obtiene un valor que indica si la columna contiene valores inexistentes o que faltan. (Se hereda de DbDataReader).
Método públicoIsDBNullAsync(Int32, CancellationToken)Versión asincrónica de IsDBNull, 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. (Invalida a DbDataReader.IsDBNullAsync(Int32, CancellationToken)).
Método protegidoMemberwiseClone() Crea una copia superficial del Object actual. (Se hereda de Object).
Método protegidoMemberwiseClone(Boolean)Crea una copia superficial del objeto MarshalByRefObject actual. (Se hereda de MarshalByRefObject).
Método públicoNextResultDesplaza el lector de datos al siguiente resultado cuando se leen los resultados de las instrucciones de Transact-SQL por lotes. (Invalida a DbDataReader.NextResult()).
Método públicoNextResultAsync()Una versión asincrónica de NextResult, que avanza el lector al siguiente resultado al leer los resultados de un lote de instrucciones.Invoca NextResultAsync con CancellationToken.None. (Se hereda de DbDataReader).
Método públicoNextResultAsync(CancellationToken)Una versión asincrónica de NextResult, que avanza el lector de datos al siguiente resultado al leer los resultados de un lote de instrucciones Transact-SQL.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. (Invalida a DbDataReader.NextResultAsync(CancellationToken)).
Método públicoReadDesplaza SqlDataReader hasta el siguiente registro. (Invalida a DbDataReader.Read()).
Método públicoReadAsync()Una versión asincrónica de Read, que avanza el lector al registro siguiente en un conjunto de resultados. Este método invoca ReadAsync con CancellationToken.None. (Se hereda de DbDataReader).
Método públicoReadAsync(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. (Invalida a DbDataReader.ReadAsync(CancellationToken)).
Método públicoToString Retorna una cadena que representa al objeto actual. (Se hereda de Object).
Arriba

  NombreDescripción
Implementación explícita de interfacesMétodo privadoIDataRecord.GetDataDevuelve una interfaz IDataReader para el índice de columna especificado.
Arriba

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

Mientras se está utilizando SqlDataReader, el objeto SqlConnection asociado está ocupado dando servicio a SqlDataReader, y en SqlConnection no se puede realizar ninguna otra operación, excepto la de cerrar. Esto es así hasta que se llama al método Close de SqlDataReader. Por ejemplo, no se pueden recuperar parámetros de salida hasta después de llamar a Close.

Los cambios que realiza otro proceso o subproceso en un conjunto de resultados mientras se leen los datos, pueden ser visibles para el usuario de SqlDataReader. Sin embargo, el comportamiento exacto depende de los intervalos de tiempo.

IsClosed y RecordsAffected son las únicas propiedades que se pueden llamar después de cerrar SqlDataReader. Si bien se puede obtener acceso a la propiedad RecordsAffected mientras exista SqlDataReader, se debe llamar siempre al método Close antes de devolver el valor de RecordsAffected para garantizar que el valor devuelto sea exacto.

Al utilizar el acceso secuencial ([CommandBehavior.SequentialAccess]), InvalidOperationException se generará si se hace avanzar la posición SqlDataReader y otra operación de lectura se intenta en la columna anterior.

NotaNota

Para obtener un rendimiento óptimo, SqlDataReader evita crear objetos innecesarios o hacer copias de objetos innecesarias. Por tanto, varias llamadas a los métodos como GetValue devuelven una referencia al mismo objeto. Conviene tener mucho cuidado si se modifica el valor subyacente de los objetos devueltos por métodos como GetValue.

En el siguiente ejemplo, se crean una conexión SqlConnection, un objeto SqlCommand y un SqlDataReader. En el ejemplo se leen los datos y se escriben en la ventana de la consola. Seguidamente, el código cierra SqlDataReader. SqlConnection se cierra automáticamente al final del bloque de código using.


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]));
    }

}


.NET Framework

Compatible con: 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Compatible con: 4, 3.5 SP1

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (no se admite el rol Server Core), Windows Server 2008 R2 (se admite el rol Server Core con SP1 o versiones posteriores; no se admite Itanium)

.NET Framework no admite todas las versiones de todas las plataformas. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.

Todos los miembros públicos static (Shared en Visual Basic) de este tipo son seguros para subprocesos. No se garantiza que los miembros de instancias sean seguros para la ejecución de subprocesos.

Adiciones de comunidad

AGREGAR
Mostrar:
© 2014 Microsoft