IDataRecord Interface

Definição

Fornece acesso aos valores das colunas dentro de cada linha para um DataReader, e é implementado por fornecedores de dados .NET que acedem a bases de dados relacionais.

public interface class IDataRecord
public interface IDataRecord
type IDataRecord = interface
Public Interface IDataRecord
Derivado

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, e 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 herdeira implemente uma DataReader classe. Isto permite ler um ou mais fluxos apenas para frente 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 IDataRecord interface, mas cria uma instância de uma classe que herda IDataRecord. Normalmente, faz-se isto através DataReader do ExecuteReader método do Command objeto.

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

Os fornecedores que implementam a DataReader são obrigados a expor dados em tipos de execução de linguagem comum (CLR). A coerção de tipo é definida para alguns tipos que não estão incluídos no CLR. Estes valores podem ser acedidos como tipos alternativos que cumprem os tipos CLR. Como exemplo, a tabela seguinte lista mapeamentos sugeridos dos tipos de dados OLE DB para tipos CLR, com tipos alternativos entre parênteses.

Tipo OLE DB Tipo CLR
DBTYPE_BOOL Int16
DBTYPE_BSTR cadeia (de caracteres)
DBTYPE_BYTES byte[]
DBTYPE_CY Decimal
DBTYPE_DATE DateTime
DBTYPE_DBDATE DateTime
DBTYPE_DBTIME DateTime
DBTYPE_DBTIMESTAMP DateTime
DBTYPE_DECIMAL Decimal
DBTYPE_EMPTY null
DBTYPE_ERROR ExceçãoExterna
DBTYPE_FILETIME DateTime
DBTYPE_GUID GUID
DBTYPE_HCHAPTER não suportado
DBTYPE_I1 SByte
DBTYPE_I2 Int16
DBTYPE_I4 Int32
DBTYPE_I8 Int64
DBTYPE_IDISPATCH objecto
DBTYPE_IUNKNOWN objecto
DBTYPE_NULL DBNull.Value
DBTYPE_NUMERIC Decimal
DBTYPE_PROPVARIANT objecto
DBTYPE_R4 Solteiro
DBTYPE_R8 Double
DBTYPE_STR cadeia (de caracteres)
DBTYPE_UDT não suportado
DBTYPE_UI1 byte (Int16)
DBTYPE_UI2 UInt16 (Int32)
DBTYPE_UI4 UInt32 (Int64)
DBTYPE_UI8 UInt64 (Decimal)
DBTYPE_VARIANT objecto
DBTYPE_VARNUMERIC não suportado
DBTYPE_WSTR cadeia (de caracteres)

Propriedades

Name Description
FieldCount

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

Item[Int32]

Obtém a coluna localizada no índice especificado.

Item[String]

Obtém a coluna com o nome especificado.

Métodos

Name Description
GetBoolean(Int32)

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

GetByte(Int32)

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

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.

GetChar(Int32)

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

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.

GetData(Int32)

Devolve um IDataReader para o ordinal da coluna especificado.

GetDataTypeName(Int32)

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

GetDateTime(Int32)

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

GetDecimal(Int32)

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

GetDouble(Int32)

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

GetFieldType(Int32)

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

GetFloat(Int32)

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

GetGuid(Int32)

Devolve o valor GUID do campo especificado.

GetInt16(Int32)

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

GetInt32(Int32)

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

GetInt64(Int32)

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

GetName(Int32)

Obtém o nome para o campo a encontrar.

GetOrdinal(String)

Devolva o índice do campo nomeado.

GetString(Int32)

Obtém o valor da cadeia do campo especificado.

GetValue(Int32)

Devolve o valor do campo especificado.

GetValues(Object[])

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

IsDBNull(Int32)

Devolve se o campo especificado está definido como nulo.

Aplica-se a