IDataReader Interface

Definição

Fornece um meio de ler um ou mais fluxos apenas diretos de conjuntos de resultados obtidos através da execução de um comando numa fonte de dados, e é implementado por fornecedores de dados .NET que acedem a bases de dados relacionais.

public interface class IDataReader : IDisposable, System::Data::IDataRecord
public interface IDataReader : IDisposable, System.Data.IDataRecord
type IDataReader = interface
    interface IDisposable
    interface IDataRecord
type IDataReader = interface
    interface IDataRecord
    interface IDisposable
Public Interface IDataReader
Implements IDataRecord, IDisposable
Derivado
Implementações

Exemplos

O exemplo seguinte cria instâncias das classes derivadas, SqlConnection, SqlCommand, e SqlDataReader. O exemplo lê os dados, escrevendo-os para a consola. Finalmente, o exemplo fecha o SqlDataReader, depois o SqlConnection.

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

As IDataReader interfaces e IDataRecord permitem que uma classe herdadora implemente uma DataReader classe, o que fornece um meio de ler um ou mais fluxos apenas diretos de conjuntos de resultados. Para mais informações sobre DataReader classes, consulte Recuperar Dados Usando um Leitor de Dados.

Uma aplicação não cria diretamente uma instância da IDataReader interface, mas cria uma instância de uma classe que herda IDataReader.

As classes que herdam IDataReader devem implementar os membros herdados, e normalmente definem membros adicionais para adicionar funcionalidades específicas do fornecedor.

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 de uma classe que implementa um IDataReader. No entanto, o comportamento exato depende tanto do provedor como do timing.

Notas para Implementadores

Para promover a consistência entre .NET fornecedores de dados do Framework, nomeie a classe herdeira na forma , onde é o prefixo uniforme dado a todas as classes num espaço de nomes específico do fornecedor de dados .NET Framework. Por exemplo, Sql é o prefixo da SqlDataAdapter classe no System.Data.SqlClient namespace.

Os utilizadores não criam diretamente uma instância de uma DataReader classe. Em vez disso, obtêm a DataReader instância através do ExecuteReader método do Command objeto. Por isso, deve marcar DataReader os construtores como internos.

Propriedades

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

(Herdado de IDataRecord)
IsClosed

Recebe um valor que indica se o leitor de dados está fechado.

Item[Int32]

Obtém a coluna localizada no índice especificado.

(Herdado de IDataRecord)
Item[String]

Obtém a coluna com o nome especificado.

(Herdado de IDataRecord)
RecordsAffected

Faz com que o número de linhas seja alterado, inserido ou eliminado pela execução da instrução SQL.

Métodos

Name Description
Close()

Fecha o IDataReader objeto.

Dispose()

Realiza tarefas definidas pela aplicação associadas à libertação, libertação ou reinício de recursos não geridos.

(Herdado de IDisposable)
GetBoolean(Int32)

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

(Herdado de IDataRecord)
GetByte(Int32)

Obtém o valor inteiro sem sinal de 8 bits da coluna especificada.

(Herdado de IDataRecord)
GetBytes(Int32, Int64, Byte[], Int32, Int32)

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

(Herdado de IDataRecord)
GetChar(Int32)

Obtém o valor do carácter da coluna especificada.

(Herdado de IDataRecord)
GetChars(Int32, Int64, Char[], Int32, Int32)

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

(Herdado de IDataRecord)
GetData(Int32)

Devolve um IDataReader para o ordinal da coluna especificado.

(Herdado de IDataRecord)
GetDataTypeName(Int32)

Obtém a informação do tipo de dado para o campo especificado.

(Herdado de IDataRecord)
GetDateTime(Int32)

Obtém o valor de data e hora do campo especificado.

(Herdado de IDataRecord)
GetDecimal(Int32)

Obtém o valor numérico de posição fixa do campo especificado.

(Herdado de IDataRecord)
GetDouble(Int32)

Obtém o número de ponto flutuante de dupla precisão do campo especificado.

(Herdado de IDataRecord)
GetFieldType(Int32)

Obtém a Type informação correspondente ao tipo de Object que seria devolvido de GetValue(Int32).

(Herdado de IDataRecord)
GetFloat(Int32)

Obtém o número de ponto flutuante de precisão simples do campo especificado.

(Herdado de IDataRecord)
GetGuid(Int32)

Devolve o valor GUID do campo especificado.

(Herdado de IDataRecord)
GetInt16(Int32)

Obtém o valor inteiro assinado de 16 bits do campo especificado.

(Herdado de IDataRecord)
GetInt32(Int32)

Obtém o valor inteiro assinado de 32 bits do campo especificado.

(Herdado de IDataRecord)
GetInt64(Int32)

Obtém o valor inteiro assinado de 64 bits do campo especificado.

(Herdado de IDataRecord)
GetName(Int32)

Obtém o nome para o campo a encontrar.

(Herdado de IDataRecord)
GetOrdinal(String)

Devolva o índice do campo nomeado.

(Herdado de IDataRecord)
GetSchemaTable()

Devolve um DataTable que descreve os metadados IDataReaderda coluna de .

Retorna null se o comando executado não devolveu resultados, ou depois NextResult() retorna false.

GetString(Int32)

Obtém o valor da cadeia do campo especificado.

(Herdado de IDataRecord)
GetValue(Int32)

Devolve o valor do campo especificado.

(Herdado de IDataRecord)
GetValues(Object[])

Preenche um array de objetos com os valores das colunas do registo atual.

(Herdado de IDataRecord)
IsDBNull(Int32)

Devolve se o campo especificado está definido como nulo.

(Herdado de IDataRecord)
NextResult()

Avança o leitor de dados para o resultado seguinte, ao ler os resultados das instruções SQL em lote.

Read()

Avança IDataReader para o próximo disco.

Aplica-se a