IDataReader Interface
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 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 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 |
| 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. |