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 : System::Data::Common::DbDataReader, IDisposable, System::Data::Common::IDbColumnSchemaGenerator
public ref class SqlDataReader : System::Data::Common::DbDataReader
public class SqlDataReader : System.Data.Common.DbDataReader, IDisposable
public class SqlDataReader : System.Data.Common.DbDataReader, IDisposable, System.Data.Common.IDbColumnSchemaGenerator
public class SqlDataReader : System.Data.Common.DbDataReader
type SqlDataReader = class
    inherit DbDataReader
    interface IDataReader
    interface IDisposable
    interface IDataRecord
type SqlDataReader = class
    inherit DbDataReader
    interface IDataReader
    interface IDataRecord
    interface IDisposable
type SqlDataReader = class
    inherit DbDataReader
    interface IDbColumnSchemaGenerator
    interface IDisposable
type SqlDataReader = class
    inherit DbDataReader
    interface IDbColumnSchemaGenerator
    interface IDataReader
    interface IDataRecord
    interface IDisposable
type SqlDataReader = class
    inherit DbDataReader
    interface IDisposable
Public Class SqlDataReader
Inherits DbDataReader
Implements IDisposable
Public Class SqlDataReader
Inherits DbDataReader
Implements IDbColumnSchemaGenerator, IDisposable
Public Class SqlDataReader
Inherits DbDataReader
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 Microsoft.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]));
    }

}

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.

SensitivityClassification

Obtiene la SensitivityClassification información con SqlDataReader.

VisibleFieldCount

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

Métodos

Close()

Cierra el objeto SqlDataReader.

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.

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.

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.

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.

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.

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

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.

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.

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.

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 objeto TimeSpan.

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.

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

NextResult()

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

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.

Read()

Desplaza SqlDataReader al siguiente registro.

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.

Implementaciones de interfaz explícitas

IDataRecord.GetData(Int32)

Devuelve un IDataReader para el ordinal de columna especificado.

Se aplica a