SqlDataReader Classe
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
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
- 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 |
| GetProviderSpecificValue(Int32) |
Obtém-se um |
| 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. |