SqlDataReader Classe

Definição

Fornece uma maneira de ler um fluxo somente de encaminhamento de linhas com base em um banco de dados SQL Server. Essa classe não pode ser herdada.

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
Herança
SqlDataReader
Herança
Herança
SqlDataReader
Implementações

Exemplos

O exemplo a seguir cria um SqlConnection, um SqlCommande um SqlDataReader. O exemplo lê os dados, gravando-os na janela do console. Em seguida, o código fecha o SqlDataReader. O SqlConnection é fechado automaticamente no final do using bloco 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

Comentários

Para criar um SqlDataReader, você deve chamar o ExecuteReader método do SqlCommand objeto, em vez de usar diretamente um construtor.

Enquanto o SqlDataReader está sendo usado, o associado SqlConnection está ocupado atendendo o SqlDataReadere nenhuma outra operação pode ser executada em outro que não seja SqlConnection fechá-lo. Esse é o caso até que o Close método do SqlDataReader seja chamado. Por exemplo, você não pode recuperar parâmetros de saída até depois de chamar Close.

As alterações feitas em um conjunto de resultados por outro processo ou thread enquanto dados estão sendo lidos podem ser visíveis para o usuário do SqlDataReader. No entanto, o comportamento preciso depende do tempo.

IsClosed e RecordsAffected são as únicas propriedades que podem ser chamadas depois que o SqlDataReader for fechado. Embora a RecordsAffected propriedade possa ser acessada enquanto o SqlDataReader existe, sempre chame Close antes de retornar o valor de RecordsAffected para garantir um valor retornado preciso.

Ao usar o acesso sequencial (CommandBehavior.SequentialAccess), um InvalidOperationException será gerado se a SqlDataReader posição for avançada e outra operação de leitura for tentada na coluna anterior.

Observação

Para obter o desempenho ideal, SqlDataReader evita criar objetos desnecessários ou fazer cópias desnecessárias de dados. Portanto, várias chamadas para métodos como GetValue retornam uma referência ao mesmo objeto. Tenha cuidado se você estiver modificando o valor subjacente dos objetos retornados por métodos como GetValue.

Propriedades

Connection

Obtém o SqlConnection associado ao SqlDataReader.

Depth

Obtém um valor que indica a profundidade de aninhamento da linha atual.

FieldCount

Obtém o número de colunas na linha atual.

HasRows

Obtém um valor que indica se o SqlDataReader contém uma ou mais linhas.

IsClosed

Recupera um valor Booliano que indica se a instância SqlDataReader especificada foi fechada.

Item[Int32]

Obtém o valor da coluna especificada em seu formato nativo de acordo com o ordinal da coluna.

Item[String]

Obtém o valor da coluna especificada em seu formato nativo de acordo com o nome da coluna.

RecordsAffected

Obtém o número de linhas alteradas, inseridas ou excluídas pela execução da instrução Transact-SQL.

VisibleFieldCount

Obtém o número de campos em SqlDataReader que não estão ocultos.

Métodos

Close()

Fecha o objeto SqlDataReader.

Close()

Fecha o objeto DbDataReader.

(Herdado de DbDataReader)
CloseAsync()

Fecha de maneira assíncrona o objeto DbDataReader.

(Herdado de DbDataReader)
CreateObjRef(Type)

Cria um objeto que contém todas as informações relevantes necessárias para gerar um proxy usado para se comunicar com um objeto remoto.

(Herdado de MarshalByRefObject)
Dispose()

Libera todos os recursos usados pela instância atual da classe DbDataReader.

(Herdado de DbDataReader)
Dispose(Boolean)

Fornece uma maneira de ler um fluxo somente de encaminhamento de linhas com base em um banco de dados SQL Server. Essa classe não pode ser herdada.

Dispose(Boolean)

Libera os recursos não gerenciados usados pelo DbDataReader e opcionalmente libera os recursos gerenciados.

(Herdado de DbDataReader)
DisposeAsync()

Libera de forma assíncrona todos os recursos usados pela instância atual da classe DbDataReader.

(Herdado de DbDataReader)
Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
GetBoolean(Int32)

Obtém o valor da coluna especificada como um booliano.

GetByte(Int32)

Obtém o valor da coluna especificada como um byte.

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

Lê um fluxo de bytes do deslocamento de coluna especificado no buffer como uma matriz, que inicia no deslocamento de buffer fornecido.

GetChar(Int32)

Obtém o valor da coluna especificada como um único caractere.

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

Lê um fluxo de caracteres do deslocamento de coluna especificado no buffer como uma matriz, que inicia no deslocamento de buffer fornecido.

GetColumnSchema()

Obtém a coleção do esquema da coluna somente leitura.

GetColumnSchemaAsync(CancellationToken)

Essa é a versão assíncrona de GetColumnSchema(DbDataReader). Provedores devem substituir com uma implementação apropriada. Opcionalmente, o cancellationToken pode ser respeitado. A implementação padrão invoca a chamada GetColumnSchema(DbDataReader) síncrona e retorna uma tarefa concluída. A implementação padrão retornará uma tarefa cancelada se já tiver passado um cancellationToken cancelado. Exceções geradas por GetColumnSchema(DbDataReader) serão comunicadas por meio da propriedade Exceção de Tarefa retornada.

(Herdado de DbDataReader)
GetData(Int32)

Retorna um IDataReader para o ordinal da coluna especificada.

GetData(Int32)

Retorna um leitor de dados aninhado para a coluna solicitada.

(Herdado de DbDataReader)
GetDataTypeName(Int32)

Obtém uma cadeia de caracteres que representa o tipo de dados da coluna especificada.

GetDateTime(Int32)

Obtém o valor da coluna especificada como um objeto DateTime.

GetDateTimeOffset(Int32)

Recupera o valor da coluna especificada como um objeto DateTimeOffset.

GetDbDataReader(Int32)

Retorna um objeto DbDataReader para o ordinal da coluna solicitado que pode ser substituído por uma implementação específica do provedor.

(Herdado de DbDataReader)
GetDecimal(Int32)

Obtém o valor da coluna especificada como um objeto Decimal.

GetDouble(Int32)

Obtém o valor da coluna especificada como um número de ponto flutuante de precisão dupla.

GetEnumerator()

Retorna um IEnumerator que itera pelo SqlDataReader.

GetFieldType(Int32)

Obtém o Type que é o tipo de dados do objeto.

GetFieldValue<T>(Int32)

Obtém de forma síncrona o valor da coluna especificada como um tipo. GetFieldValueAsync<T>(Int32, CancellationToken) é a versão assíncrona deste método.

GetFieldValue<T>(Int32)

Obtém o valor da coluna especificada como um tipo solicitado.

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

Obtém de forma assíncrona o valor da coluna especificada como um tipo solicitado.

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

Obtém de forma assíncrona o valor da coluna especificada como um tipo. GetFieldValue<T>(Int32) é a versão síncrona deste método.

GetFieldValueAsync<T>(Int32, CancellationToken)

Obtém de forma assíncrona o valor da coluna especificada como um tipo solicitado.

(Herdado de DbDataReader)
GetFloat(Int32)

Obtém o valor da coluna especificada como um número de ponto flutuante de precisão simples.

GetGuid(Int32)

Obtém o valor da coluna especificada como um GUID (identificador global exclusivo).

GetHashCode()

Serve como a função de hash padrão.

(Herdado de Object)
GetInt16(Int32)

Obtém o valor da coluna especificada como um inteiro com sinal de 16 bits.

GetInt32(Int32)

Obtém o valor da coluna especificada como um inteiro com sinal de 32 bits.

GetInt64(Int32)

Obtém o valor da coluna especificada como um inteiro com sinal de 64 bits.

GetLifetimeService()
Obsoleto.

Recupera o objeto de serviço de tempo de vida atual que controla a política de ciclo de vida para esta instância.

(Herdado de MarshalByRefObject)
GetName(Int32)

Obtém o nome da coluna especificada.

GetOrdinal(String)

Obtém a ordinal da coluna, de acordo com o nome da coluna.

GetProviderSpecificFieldType(Int32)

Obtém um Object que é uma representação do tipo de campo específico do provedor subjacente.

GetProviderSpecificValue(Int32)

Obtém um Object que é uma representação do valor específico do provedor subjacente.

GetProviderSpecificValues(Object[])

Obtém uma matriz de objetos que são uma representação dos valores específicos do provedor subjacente.

GetSchemaTable()

Retorna um DataTable que descreve os metadados da coluna do SqlDataReader.

GetSchemaTable()

Retorna um DataTable que descreve os metadados da coluna do DbDataReader. Retorna null se o comando executado não retornou nenhum conjunto de resultados ou depois NextResult() de retornar false.

(Herdado de DbDataReader)
GetSchemaTableAsync(CancellationToken)

Essa é a versão assíncrona de GetSchemaTable(). Provedores devem substituir com uma implementação apropriada. Opcionalmente, o cancellationToken pode ser respeitado. A implementação padrão invoca a chamada GetSchemaTable() síncrona e retorna uma tarefa concluída. A implementação padrão retornará uma tarefa cancelada se já tiver passado um cancellationToken cancelado. Exceções geradas por GetSchemaTable() serão comunicadas por meio da propriedade Exceção de Tarefa retornada.

(Herdado de DbDataReader)
GetSqlBinary(Int32)

Obtém o valor da coluna especificada como um SqlBinary.

GetSqlBoolean(Int32)

Obtém o valor da coluna especificada como um SqlBoolean.

GetSqlByte(Int32)

Obtém o valor da coluna especificada como um SqlByte.

GetSqlBytes(Int32)

Obtém o valor da coluna especificada como SqlBytes.

GetSqlChars(Int32)

Obtém o valor da coluna especificada como SqlChars.

GetSqlDateTime(Int32)

Obtém o valor da coluna especificada como um SqlDateTime.

GetSqlDecimal(Int32)

Obtém o valor da coluna especificada como um SqlDecimal.

GetSqlDouble(Int32)

Obtém o valor da coluna especificada como um SqlDouble.

GetSqlGuid(Int32)

Obtém o valor da coluna especificada como um SqlGuid.

GetSqlInt16(Int32)

Obtém o valor da coluna especificada como um SqlInt16.

GetSqlInt32(Int32)

Obtém o valor da coluna especificada como um SqlInt32.

GetSqlInt64(Int32)

Obtém o valor da coluna especificada como um SqlInt64.

GetSqlMoney(Int32)

Obtém o valor da coluna especificada como um SqlMoney.

GetSqlSingle(Int32)

Obtém o valor da coluna especificada como um SqlSingle.

GetSqlString(Int32)

Obtém o valor da coluna especificada como um SqlString.

GetSqlValue(Int32)

Retorna o valor dos dados na coluna especificada como um tipo SQL Server.

GetSqlValues(Object[])

Preenche uma matriz de Object que contém os valores de todas as colunas no registro, expressos como tipos do SQL Server.

GetSqlXml(Int32)

Obtém o valor da coluna especificada como um valor XML.

GetStream(Int32)

Recupera binário, imagem, varbinary, UDT e tipos de dados Variant como um Stream.

GetStream(Int32)

Obtém um fluxo para recuperar dados da coluna especificada.

(Herdado de DbDataReader)
GetString(Int32)

Obtém o valor da coluna especificada como uma cadeia de caracteres.

GetTextReader(Int32)

Recupera os tipos de dados Char, NChar, NText, NVarChar, texto, varChar e Variant como um TextReader.

GetTextReader(Int32)

Obtém um leitor de texto para recuperar dados da coluna.

(Herdado de DbDataReader)
GetTimeSpan(Int32)

Recupera o valor da coluna especificada como um objeto TimeSpan.

GetType()

Obtém o Type da instância atual.

(Herdado de Object)
GetValue(Int32)

Obtém o valor da coluna especificada em seu formato nativo.

GetValues(Object[])

Popula uma matriz de objetos com os valores da coluna da linha atual.

GetXmlReader(Int32)

Recupera dados do tipo XML como um XmlReader.

InitializeLifetimeService()
Obsoleto.

Obtém um objeto de serviço de tempo de vida para controlar a política de tempo de vida para essa instância.

(Herdado de MarshalByRefObject)
IsCommandBehavior(CommandBehavior)

Determina se o CommandBehavior especificado corresponde ao do SqlDataReader.

IsDBNull(Int32)

Obtém um valor que indica se a coluna contém valores ausentes ou inexistente.

IsDBNullAsync(Int32)

Obtém, de maneira assíncrona, um valor que indica se a coluna contém valores ausentes ou inexistente.

(Herdado de DbDataReader)
IsDBNullAsync(Int32, CancellationToken)

Uma versão assíncrona de IsDBNull(Int32), que obtém um valor que indica se a coluna contém valores ausentes ou inexistente.

O token de cancelamento pode ser usado para solicitar que a operação seja abandonada antes de expirar o tempo limite do comando. As exceções serão relatadas por meio do objeto de tarefa.

IsDBNullAsync(Int32, CancellationToken)

Obtém, de maneira assíncrona, um valor que indica se a coluna contém valores ausentes ou inexistente.

(Herdado de DbDataReader)
MemberwiseClone()

Cria uma cópia superficial do Object atual.

(Herdado de Object)
MemberwiseClone(Boolean)

Cria uma cópia superficial do objeto MarshalByRefObject atual.

(Herdado de MarshalByRefObject)
NextResult()

Leva o leitor de dados ao resultado seguinte ao ler os resultados de instruções Transact-SQL em lote.

NextResultAsync()

Avança de maneira assíncrona o leitor para o resultado seguinte ao ler os resultados de um lote de instruções.

(Herdado de DbDataReader)
NextResultAsync(CancellationToken)

Uma versão assíncrona do , que avança o leitor de NextResult()dados para o próximo resultado, ao ler os resultados das instruções Transact-SQL em lote.

O token de cancelamento pode ser usado para solicitar que a operação seja abandonada antes de expirar o tempo limite do comando. As exceções serão relatadas por meio do objeto de tarefa.

NextResultAsync(CancellationToken)

Avança de maneira assíncrona o leitor para o resultado seguinte ao ler os resultados de um lote de instruções.

(Herdado de DbDataReader)
Read()

Avança o SqlDataReader para o próximo registro.

ReadAsync()

Avança de maneira assíncrona o leitor para o próximo registro em um conjunto de resultados.

(Herdado de DbDataReader)
ReadAsync(CancellationToken)

Uma versão assíncrona de Read(), que avança o SqlDataReader para o próximo registro.

O token de cancelamento pode ser usado para solicitar que a operação seja abandonada antes de expirar o tempo limite do comando. As exceções serão relatadas por meio do objeto de tarefa.

ReadAsync(CancellationToken)

Avança de maneira assíncrona o leitor para o próximo registro em um conjunto de resultados.

(Herdado de DbDataReader)
ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)

Implantações explícitas de interface

IDataReader.Close()

Para obter uma descrição desse membro, confira Close().

(Herdado de DbDataReader)
IDataReader.GetSchemaTable()

Para obter uma descrição desse membro, confira GetSchemaTable().

(Herdado de DbDataReader)
IDataRecord.GetData(Int32)

Retorna um IDataReader para o ordinal da coluna especificada.

IDataRecord.GetData(Int32)

Para obter uma descrição desse membro, confira GetData(Int32).

(Herdado de DbDataReader)
IDisposable.Dispose()

Libera todos os recursos usados pelo leitor de dados.

IEnumerable.GetEnumerator()

Retorna um enumerador que pode ser usado para iterar na coleção de item.

Métodos de Extensão

CanGetColumnSchema(DbDataReader)

Obtém um valor que indica se um DbDataReader pode obter um esquema de coluna.

GetColumnSchema(DbDataReader)

Obtém o esquema da coluna (coleção DbColumn) para um DbDataReader.

Cast<TResult>(IEnumerable)

Converte os elementos de um IEnumerable para o tipo especificado.

OfType<TResult>(IEnumerable)

Filtra os elementos de um IEnumerable com base em um tipo especificado.

AsParallel(IEnumerable)

Habilita a paralelização de uma consulta.

AsQueryable(IEnumerable)

Converte um IEnumerable em um IQueryable.

Aplica-se a

Confira também