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.

public ref class SqlDataReader sealed : MarshalByRefObject, IDisposable, System::Collections::IEnumerable, System::Data::IDataReader
public ref 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, 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 NotInheritable Class SqlDataReader
Inherits MarshalByRefObject
Implements IDataReader, IDisposable, IEnumerable
Public Class SqlDataReader
Inherits DbDataReader
Implements IDisposable
Herança
SqlDataReader
Herança
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

Name Description
Connection

Obtém o SqlConnection associado ao SqlDataReader.

Depth

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

FieldCount

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

HasRows

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

IsClosed

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

Item[Int32]

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

Item[String]

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

RecordsAffected

Obtém o número de linhas alterado, inserido ou eliminado 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

Name Description
Close()

Fecha o SqlDataReader objeto.

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.

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 da coluna especificado para o buffer, um array começando no deslocamento do buffer dado.

GetChar(Int32)

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

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.

GetData(Int32)

Devolve um IDataReader para o ordinal da coluna especificado.

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.

GetDateTime(Int32)

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

GetDateTimeOffset(Int32)

Recupera o valor da coluna especificada como objeto DateTimeOffset .

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 .

GetDouble(Int32)

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

GetEnumerator()

Retorna um IEnumerator que itera através do SqlDataReader.

GetFieldType(Int32)

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

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.

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.

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.

GetGuid(Int32)

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

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.

GetInt32(Int32)

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

GetInt64(Int32)

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

GetLifetimeService()

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.

GetOrdinal(String)

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

GetProviderSpecificFieldType(Int32)

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

GetProviderSpecificValue(Int32)

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

GetProviderSpecificValues(Object[])

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

GetSchemaTable()

Devolve um DataTable que descreve os metadados SqlDataReaderda coluna de .

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)

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

GetSqlValues(Object[])

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

GetSqlXml(Int32)

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

GetStream(Int32)

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

GetString(Int32)

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

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

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.

GetValues(Object[])

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

GetXmlReader(Int32)

Recupera dados do tipo XML como um XmlReader.

InitializeLifetimeService()

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 .

IsDBNull(Int32)

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

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.

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.

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.

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.

Read()

Avança SqlDataReader para o próximo disco.

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.

ToString()

Devolve uma cadeia que representa o objeto atual.

(Herdado de Object)

Implementações de Interface Explícita

Name Description
IDataRecord.GetData(Int32)

Devolve um IDataReader para o ordinal da coluna especificado.

IDisposable.Dispose()

Liberta todos os recursos utilizados pelo leitor de dados.

IEnumerable.GetEnumerator()

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

Métodos da Extensão

Name Description
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

Ver também