Compartilhar via


SqlDataReader Classe

Definição

Fornece uma maneira de ler um fluxo somente de encaminhamento de linhas de um banco de dados do 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 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
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. Ele SqlConnection é fechado automaticamente no final do using bloco 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

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 SqlDataReader, e 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 os dados estão sendo lidos podem estar 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 você pode chamar após o SqlDataReader fechamento. Embora a RecordsAffected propriedade possa ser acessada enquanto existir SqlDataReader , sempre chame Close antes de retornar o valor para RecordsAffected 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 um 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 retornar uma referência ao mesmo objeto. Tenha cuidado se você estiver modificando o valor subjacente dos objetos retornados por métodos como GetValue.

Propriedades

Nome Description
Connection

Obtém o SqlConnection associado ao SqlDataReader.

Depth

Obtém um valor que indica a profundidade do aninhamento para a 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 especificada SqlDataReader foi fechada.

Item[Int32]

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

Item[String]

Obtém o valor da coluna especificada em seu formato nativo dado 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 no SqlDataReader que não estão ocultos.

Métodos

Nome Description
Close()

Fecha o SqlDataReader objeto.

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 DbDataReader classe.

(Herdado de DbDataReader)
Dispose(Boolean)

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

(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 para o buffer uma matriz começando 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 para o buffer como uma matriz começando no deslocamento de buffer fornecido.

GetData(Int32)

Retorna um IDataReader para o ordinal de coluna especificado.

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

GetDateTimeOffset(Int32)

Recupera o valor da coluna especificada como um DateTimeOffset objeto.

GetDbDataReader(Int32)

Retorna um DbDataReader objeto para o ordinal de 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 Decimal objeto.

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 por meio do SqlDataReader.

GetFieldType(Int32)

Obtém o Type 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.

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 desse método.

GetFieldValueAsync<T>(Int32)

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

(Herdado de DbDataReader)
GetFloat(Int32)

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

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 tempo de vida para essa instância.

(Herdado de MarshalByRefObject)
GetName(Int32)

Obtém o nome da coluna especificada.

GetOrdinal(String)

Obtém o ordinal de coluna, dado o nome da coluna.

GetProviderSpecificFieldType(Int32)

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

GetProviderSpecificValue(Int32)

Obtém uma Object 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 de coluna do SqlDataReader.

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 de dados na coluna especificada como um tipo do SQL Server.

GetSqlValues(Object[])

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

GetSqlXml(Int32)

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

GetStream(Int32)

Recupera tipos de dados binários, de imagem, varbinary, UDT e variantes como um Stream.

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, text, varChar e Variant como um TextReader.

GetTimeSpan(Int32)

Recupera o valor da coluna especificada como um TimeSpan objeto.

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 de 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 dessa instância.

(Herdado de MarshalByRefObject)
IsCommandBehavior(CommandBehavior)

Determina se o especificado CommandBehavior corresponde ao SqlDataReader .

IsDBNull(Int32)

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

IsDBNullAsync(Int32, CancellationToken)

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

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

IsDBNullAsync(Int32)

Obtém de forma assíncrona um valor que indica se a coluna contém valores inexistentes ou ausentes.

(Herdado de DbDataReader)
MemberwiseClone()

Cria uma cópia superficial do Objectatual.

(Herdado de Object)
MemberwiseClone(Boolean)

Cria uma cópia superficial do objeto atual MarshalByRefObject .

(Herdado de MarshalByRefObject)
NextResult()

Avança o leitor de dados para o próximo resultado, ao ler os resultados das instruções de Transact-SQL do lote.

NextResultAsync()

Avança de forma assíncrona o leitor para o próximo resultado ao ler os resultados de um lote de instruções.

(Herdado de DbDataReader)
NextResultAsync(CancellationToken)

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

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

Read()

Avança para o SqlDataReader próximo registro.

ReadAsync()

Avança de forma 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 para SqlDataReader o próximo registro.

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

ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)

Implantações explícitas de interface

Nome Description
IDataReader.Close()

Para obter uma descrição deste membro, consulte Close().

(Herdado de DbDataReader)
IDataReader.GetSchemaTable()

Para obter uma descrição deste membro, consulte GetSchemaTable().

(Herdado de DbDataReader)
IDataRecord.GetData(Int32)

Retorna um IDataReader para o ordinal de coluna especificado.

IDataRecord.GetData(Int32)

Para obter uma descrição deste membro, consulte 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 por meio da coleção de itens.

Métodos de Extensão

Nome Description
AsParallel(IEnumerable)

Habilita a paralelização de uma consulta.

AsQueryable(IEnumerable)

Converte um IEnumerable em um IQueryable.

CanGetColumnSchema(DbDataReader)

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

Cast<TResult>(IEnumerable)

Converte os elementos de um IEnumerable para o tipo especificado.

GetColumnSchema(DbDataReader)

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

OfType<TResult>(IEnumerable)

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

Aplica-se a

Confira também