Idioma

SqlDataReader Classe

Definição

Fornece uma forma de ler um fluxo apenas direto de linhas a partir de uma base de dados do SQL Server. Esta classe não pode ser herdada.

Para novos desenvolvimentos, use a Microsoft. Data.SqlClient. Esta página documenta o System.Data.SqlClient.

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 seguinte cria um SqlConnection, um SqlCommand, e um SqlDataReader. O exemplo lê os dados, escrevendo-os na janela da consola. O código fecha então o SqlDataReader. O SqlConnection é encerrado automaticamente no final do bloco using 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

Observações

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

Enquanto o SqlDataReader está a ser utilizado, o associado SqlConnection está ocupado a servir o SqlDataReader, e não podem ser realizadas outras operações sobre o SqlConnection que não sejam o seu encerramento. Isto mantém-se até que o Close método do SqlDataReader seja chamado. Por exemplo, não pode recuperar parâmetros de saída até depois de chamar Close.

Alterações feitas a um conjunto de resultados por outro processo ou thread enquanto os dados estão a ser lidos podem ser visíveis para o utilizador do SqlDataReader. No entanto, o comportamento exato depende do timing.

IsClosed e RecordsAffected são as únicas propriedades que pode chamar depois de o SqlDataReader fechar. Embora a RecordsAffected propriedade possa ser acedida enquanto existe, SqlDataReader ligue Close sempre antes de devolver o valor de RecordsAffected para garantir um valor de retorno preciso.

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

Note

Para um desempenho ótimo, SqlDataReader evita criar objetos desnecessários ou fazer cópias desnecessárias de dados. Portanto, múltiplas chamadas a métodos como GetValue devolver uma referência ao mesmo objeto. Tenha cautela se estiver a modificar o valor subjacente dos objetos devolvidos por métodos como GetValue.

Propriedades

Nome Descrição
Connection

Obtém o SqlConnection associado ao SqlDataReader.

Para novos desenvolvimentos, use a Microsoft. Data.SqlClient. Esta página documenta o System.Data.SqlClient.

Depth

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

Para novos desenvolvimentos, use a Microsoft. Data.SqlClient. Esta página documenta o System.Data.SqlClient.

FieldCount

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

Para novos desenvolvimentos, use a Microsoft. Data.SqlClient. Esta página documenta o System.Data.SqlClient.

HasRows

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

Para novos desenvolvimentos, use a Microsoft. Data.SqlClient. Esta página documenta o System.Data.SqlClient.

IsClosed

Recupera um valor booleano que indica se a instância especificada SqlDataReader foi encerrada.

Para novos desenvolvimentos, use a Microsoft. Data.SqlClient. Esta página documenta o System.Data.SqlClient.

Item[Int32]

Obtém o valor da coluna especificada no seu formato nativo dado o ordinal da coluna.

Para novos desenvolvimentos, use a Microsoft. Data.SqlClient. Esta página documenta o System.Data.SqlClient.

Item[String]

Obtém o valor da coluna especificada no seu formato nativo, dado o nome da coluna.

Para novos desenvolvimentos, use a Microsoft. Data.SqlClient. Esta página documenta o System.Data.SqlClient.

RecordsAffected

Obtém o número de linhas alterado, inserido ou eliminado pela execução da instrução Transact-SQL.

Para novos desenvolvimentos, use a Microsoft. Data.SqlClient. Esta página documenta o System.Data.SqlClient.

VisibleFieldCount

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

Para novos desenvolvimentos, use a Microsoft. Data.SqlClient. Esta página documenta o System.Data.SqlClient.

Métodos

Nome Descrição
Close()

Fecha o SqlDataReader objeto.

Para novos desenvolvimentos, use a Microsoft. Data.SqlClient. Esta página documenta o System.Data.SqlClient.

CreateObjRef(Type)

Cria um objeto que contém toda a informação relevante necessária para gerar um proxy usado para comunicar com um objeto remoto.

(Herdado de MarshalByRefObject)
Dispose()

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

(Herdado de DbDataReader)
Dispose(Boolean)

Liberta os recursos não geridos usados pelo DbDataReader e opcionalmente liberta os recursos geridos.

(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 Booleano.

Para novos desenvolvimentos, use a Microsoft. Data.SqlClient. Esta página documenta o System.Data.SqlClient.

GetByte(Int32)

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

Para novos desenvolvimentos, use a Microsoft. Data.SqlClient. Esta página documenta o System.Data.SqlClient.

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

Lê um fluxo de bytes do deslocamento da coluna especificado para o buffer, um array começando no deslocamento do buffer dado.

Para novos desenvolvimentos, use a Microsoft. Data.SqlClient. Esta página documenta o System.Data.SqlClient.

GetChar(Int32)

Obtém o valor da coluna especificada como um único carácter.

Para novos desenvolvimentos, use a Microsoft. Data.SqlClient. Esta página documenta o System.Data.SqlClient.

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

Lê um fluxo de caracteres do deslocamento de coluna especificado para o buffer como um array a partir do deslocamento do buffer dado.

Para novos desenvolvimentos, use a Microsoft. Data.SqlClient. Esta página documenta o System.Data.SqlClient.

GetData(Int32)

Devolve um IDataReader para o ordinal da coluna especificado.

Para novos desenvolvimentos, use a Microsoft. Data.SqlClient. Esta página documenta o System.Data.SqlClient.

GetData(Int32)

Devolve um leitor de dados aninhado para a coluna solicitada.

(Herdado de DbDataReader)
GetDataTypeName(Int32)

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

Para novos desenvolvimentos, use a Microsoft. Data.SqlClient. Esta página documenta o System.Data.SqlClient.

GetDateTime(Int32)

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

Para novos desenvolvimentos, use a Microsoft. Data.SqlClient. Esta página documenta o System.Data.SqlClient.

GetDateTimeOffset(Int32)

Recupera o valor da coluna especificada como objeto DateTimeOffset .

Para novos desenvolvimentos, use a Microsoft. Data.SqlClient. Esta página documenta o System.Data.SqlClient.

GetDbDataReader(Int32)

Devolve um DbDataReader objeto para o ordinal da coluna solicitado que pode ser sobreposto com uma implementação específica do fornecedor.

(Herdado de DbDataReader)
GetDecimal(Int32)

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

Para novos desenvolvimentos, use a Microsoft. Data.SqlClient. Esta página documenta o System.Data.SqlClient.

GetDouble(Int32)

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

Para novos desenvolvimentos, use a Microsoft. Data.SqlClient. Esta página documenta o System.Data.SqlClient.

GetEnumerator()

Retorna um IEnumerator que itera através do SqlDataReader.

Para novos desenvolvimentos, use a Microsoft. Data.SqlClient. Esta página documenta o System.Data.SqlClient.

GetFieldType(Int32)

Obtém-se que Type é o tipo de dado do objeto.

Para novos desenvolvimentos, use a Microsoft. Data.SqlClient. Esta página documenta o System.Data.SqlClient.

GetFieldValue<T>(Int32)

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

Para novos desenvolvimentos, use a Microsoft. Data.SqlClient. Esta página documenta o System.Data.SqlClient.

GetFieldValueAsync<T>(Int32, CancellationToken)

Assíncronamente obtém o valor da coluna especificada como um tipo. GetFieldValue<T>(Int32) é a versão síncrona deste método.

Para novos desenvolvimentos, use a Microsoft. Data.SqlClient. Esta página documenta o System.Data.SqlClient.

GetFieldValueAsync<T>(Int32)

Assíncrono, obtém 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 simples.

Para novos desenvolvimentos, use a Microsoft. Data.SqlClient. Esta página documenta o System.Data.SqlClient.

GetGuid(Int32)

Obtém o valor da coluna especificada como um identificador globalmente único (GUID).

Para novos desenvolvimentos, use a Microsoft. Data.SqlClient. Esta página documenta o System.Data.SqlClient.

GetHashCode()

Serve como função de hash predefinida.

(Herdado de Object)
GetInt16(Int32)

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

Para novos desenvolvimentos, use a Microsoft. Data.SqlClient. Esta página documenta o System.Data.SqlClient.

GetInt32(Int32)

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

Para novos desenvolvimentos, use a Microsoft. Data.SqlClient. Esta página documenta o System.Data.SqlClient.

GetInt64(Int32)

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

Para novos desenvolvimentos, use a Microsoft. Data.SqlClient. Esta página documenta o System.Data.SqlClient.

GetLifetimeService()
Obsoleto.

Recupera o objeto de serviço de tempo de vida atual que controla a política de vida útil neste caso.

(Herdado de MarshalByRefObject)
GetName(Int32)

Obtém o nome da coluna especificada.

Para novos desenvolvimentos, use a Microsoft. Data.SqlClient. Esta página documenta o System.Data.SqlClient.

GetOrdinal(String)

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

Para novos desenvolvimentos, use a Microsoft. Data.SqlClient. Esta página documenta o System.Data.SqlClient.

GetProviderSpecificFieldType(Int32)

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

Para novos desenvolvimentos, use a Microsoft. Data.SqlClient. Esta página documenta o System.Data.SqlClient.

GetProviderSpecificValue(Int32)

Obtém-se um Object que representa o valor específico do fornecedor subjacente.

Para novos desenvolvimentos, use a Microsoft. Data.SqlClient. Esta página documenta o System.Data.SqlClient.

GetProviderSpecificValues(Object[])

Obtém um array de objetos que representam os valores específicos do fornecedor subjacente.

Para novos desenvolvimentos, use a Microsoft. Data.SqlClient. Esta página documenta o System.Data.SqlClient.

GetSchemaTable()

Devolve um DataTable que descreve os metadados SqlDataReaderda coluna de .

Para novos desenvolvimentos, use a Microsoft. Data.SqlClient. Esta página documenta o System.Data.SqlClient.

GetSqlBinary(Int32)

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

Para novos desenvolvimentos, use a Microsoft. Data.SqlClient. Esta página documenta o System.Data.SqlClient.

GetSqlBoolean(Int32)

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

Para novos desenvolvimentos, use a Microsoft. Data.SqlClient. Esta página documenta o System.Data.SqlClient.

GetSqlByte(Int32)

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

Para novos desenvolvimentos, use a Microsoft. Data.SqlClient. Esta página documenta o System.Data.SqlClient.

GetSqlBytes(Int32)

Obtém o valor da coluna especificada como SqlBytes.

Para novos desenvolvimentos, use a Microsoft. Data.SqlClient. Esta página documenta o System.Data.SqlClient.

GetSqlChars(Int32)

Obtém o valor da coluna especificada como SqlChars.

Para novos desenvolvimentos, use a Microsoft. Data.SqlClient. Esta página documenta o System.Data.SqlClient.

GetSqlDateTime(Int32)

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

Para novos desenvolvimentos, use a Microsoft. Data.SqlClient. Esta página documenta o System.Data.SqlClient.

GetSqlDecimal(Int32)

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

Para novos desenvolvimentos, use a Microsoft. Data.SqlClient. Esta página documenta o System.Data.SqlClient.

GetSqlDouble(Int32)

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

Para novos desenvolvimentos, use a Microsoft. Data.SqlClient. Esta página documenta o System.Data.SqlClient.

GetSqlGuid(Int32)

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

Para novos desenvolvimentos, use a Microsoft. Data.SqlClient. Esta página documenta o System.Data.SqlClient.

GetSqlInt16(Int32)

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

Para novos desenvolvimentos, use a Microsoft. Data.SqlClient. Esta página documenta o System.Data.SqlClient.

GetSqlInt32(Int32)

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

Para novos desenvolvimentos, use a Microsoft. Data.SqlClient. Esta página documenta o System.Data.SqlClient.

GetSqlInt64(Int32)

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

Para novos desenvolvimentos, use a Microsoft. Data.SqlClient. Esta página documenta o System.Data.SqlClient.

GetSqlMoney(Int32)

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

Para novos desenvolvimentos, use a Microsoft. Data.SqlClient. Esta página documenta o System.Data.SqlClient.

GetSqlSingle(Int32)

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

Para novos desenvolvimentos, use a Microsoft. Data.SqlClient. Esta página documenta o System.Data.SqlClient.

GetSqlString(Int32)

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

Para novos desenvolvimentos, use a Microsoft. Data.SqlClient. Esta página documenta o System.Data.SqlClient.

GetSqlValue(Int32)

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

Para novos desenvolvimentos, use a Microsoft. Data.SqlClient. Esta página documenta o System.Data.SqlClient.

GetSqlValues(Object[])

Preenche um array de Object que contém os valores de todas as colunas do registo, expressos como SQL Server tipos.

Para novos desenvolvimentos, use a Microsoft. Data.SqlClient. Esta página documenta o System.Data.SqlClient.

GetSqlXml(Int32)

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

Para novos desenvolvimentos, use a Microsoft. Data.SqlClient. Esta página documenta o System.Data.SqlClient.

GetStream(Int32)

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

Para novos desenvolvimentos, use a Microsoft. Data.SqlClient. Esta página documenta o System.Data.SqlClient.

GetString(Int32)

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

Para novos desenvolvimentos, use a Microsoft. Data.SqlClient. Esta página documenta o System.Data.SqlClient.

GetTextReader(Int32)

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

Para novos desenvolvimentos, use a Microsoft. Data.SqlClient. Esta página documenta o System.Data.SqlClient.

GetTimeSpan(Int32)

Recupera o valor da coluna especificada como objeto TimeSpan .

Para novos desenvolvimentos, use a Microsoft. Data.SqlClient. Esta página documenta o System.Data.SqlClient.

GetType()

Obtém o Type da instância atual.

(Herdado de Object)
GetValue(Int32)

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

Para novos desenvolvimentos, use a Microsoft. Data.SqlClient. Esta página documenta o System.Data.SqlClient.

GetValues(Object[])

Preenche um array de objetos com os valores das colunas da linha atual.

Para novos desenvolvimentos, use a Microsoft. Data.SqlClient. Esta página documenta o System.Data.SqlClient.

GetXmlReader(Int32)

Recupera dados do tipo XML como um XmlReader.

Para novos desenvolvimentos, use a Microsoft. Data.SqlClient. Esta página documenta o System.Data.SqlClient.

InitializeLifetimeService()
Obsoleto.

Obtém-se um objeto de serviço vitalício para controlar a apólice vitalícia neste caso.

(Herdado de MarshalByRefObject)
IsCommandBehavior(CommandBehavior)

Determina se o especificado CommandBehavior corresponde ao do SqlDataReader .

Para novos desenvolvimentos, use a Microsoft. Data.SqlClient. Esta página documenta o System.Data.SqlClient.

IsDBNull(Int32)

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

Para novos desenvolvimentos, use a Microsoft. Data.SqlClient. Esta página documenta o System.Data.SqlClient.

IsDBNullAsync(Int32, CancellationToken)

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

O token de cancelamento pode ser usado para pedir que a operação seja abandonada antes do tempo limite do comando. As exceções serão reportadas através do objeto Task devolvido.

Para novos desenvolvimentos, use a Microsoft. Data.SqlClient. Esta página documenta o System.Data.SqlClient.

IsDBNullAsync(Int32)

De forma assíncrona, obtém um valor que indica se a coluna contém valores inexistentes ou em falta.

(Herdado de DbDataReader)
MemberwiseClone()

Cria uma cópia superficial do atual Object.

(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 resultado seguinte, ao ler os resultados das instruções de lote Transact-SQL.

Para novos desenvolvimentos, use a Microsoft. Data.SqlClient. Esta página documenta o System.Data.SqlClient.

NextResultAsync()

De forma assíncrona, avança o leitor para o resultado seguinte ao ler os resultados de um conjunto de instruções.

(Herdado de DbDataReader)
NextResultAsync(CancellationToken)

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

      The cancellation token can be used to request that the operation be abandoned before the command timeout elapses. Exceptions will be reported via the returned Task object.

      <p>For new development, use <a href="/sql/connect/ado-net/introduction-microsoft-data-sqlclient-namespace">Microsoft.Data.SqlClient</a>. This page documents System.Data.SqlClient.</p>
Read()

Avança SqlDataReader para o próximo disco.

Para novos desenvolvimentos, use a Microsoft. Data.SqlClient. Esta página documenta o System.Data.SqlClient.

ReadAsync()

De forma assíncrona, avança o leitor para o registo seguinte num conjunto de resultados.

(Herdado de DbDataReader)
ReadAsync(CancellationToken)

Uma versão assíncrona de Read(), que avança para o SqlDataReader registo seguinte.

O token de cancelamento pode ser usado para pedir que a operação seja abandonada antes do tempo limite do comando. As exceções serão reportadas através do objeto Task devolvido.

Para novos desenvolvimentos, use a Microsoft. Data.SqlClient. Esta página documenta o System.Data.SqlClient.

ToString()

Devolve uma cadeia que representa o objeto atual.

(Herdado de Object)

Implementações de Interface Explícita

Nome Descrição
IDataReader.Close()

Para uma descrição deste elemento, veja Close().

(Herdado de DbDataReader)
IDataReader.GetSchemaTable()

Para uma descrição deste elemento, veja GetSchemaTable().

(Herdado de DbDataReader)
IDataRecord.GetData(Int32)

Devolve um IDataReader para o ordinal da coluna especificado.

Para novos desenvolvimentos, use a Microsoft. Data.SqlClient. Esta página documenta o System.Data.SqlClient.

IDataRecord.GetData(Int32)

Para uma descrição deste elemento, veja GetData(Int32).

(Herdado de DbDataReader)
IDisposable.Dispose()

Liberta todos os recursos utilizados pelo leitor de dados.

Para novos desenvolvimentos, use a Microsoft. Data.SqlClient. Esta página documenta o System.Data.SqlClient.

IEnumerable.GetEnumerator()

Devolve um enumerador que pode ser usado para iterar na coleção de itens.

Para novos desenvolvimentos, use a Microsoft. Data.SqlClient. Esta página documenta o System.Data.SqlClient.

Métodos da Extensão

Nome Descrição
AsParallel(IEnumerable)

Permite a paralelização de uma consulta.

AsQueryable(IEnumerable)

Converte um IEnumerable para um IQueryable.

CanGetColumnSchema(DbDataReader)

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

Cast<TResult>(IEnumerable)

Conjura os elementos de an IEnumerable para o tipo especificado.

GetColumnSchema(DbDataReader)

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

OfType<TResult>(IEnumerable)

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

Aplica-se a

Consulte também