IDataRecord Interface

Definição

Fornece acesso aos valores de coluna em cada linha para um DataReadere é implementado por provedores de dados do .NET que acessam bancos de dados relacionais.

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

Exemplos

O exemplo a seguir cria instâncias das classes derivadas, SqlConnectionSqlCommande SqlDataReader. O exemplo lê os dados, gravando-os no console. Por fim, o exemplo fecha o SqlDataReader. e, em seguida, 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

Comentários

As IDataReader interfaces e IDataRecord as interfaces permitem que uma classe herdada implemente uma DataReader classe. Isso fornece uma maneira de ler um ou mais fluxos somente de avanço de conjuntos de resultados. Para obter mais informações sobre DataReader classes, consulte Recuperando dados usando um DataReader.

Um aplicativo não cria uma instância da IDataRecord interface diretamente, mas cria uma instância de uma classe que herda IDataRecord. Normalmente, você faz isso obtendo um DataReader por meio do ExecuteReader método do Command objeto.

As classes herdadas IDataRecord devem implementar todos os membros herdados e, normalmente, definir membros adicionais para adicionar funcionalidade específica do provedor.

Os provedores que implementam um DataReader são necessários para expor dados em tipos CLR (Common Language Runtime). A coerção de tipo é definida para alguns tipos não incluídos no CLR. Esses valores podem ser acessados como tipos alternativos que estão em conformidade com tipos CLR. Por exemplo, a tabela a seguir lista mapeamentos sugeridos de 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
DBTYPE_BYTES byte[]
DBTYPE_CY Decimal
DBTYPE_DATE DateTime
DBTYPE_DBDATE DateTime
DBTYPE_DBTIME DateTime
DBTYPE_DBTIMESTAMP DateTime
DBTYPE_DECIMAL (tipo de dados decimal) Decimal
DBTYPE_EMPTY nulo
DBTYPE_ERROR Exceção Externa
DBTYPE_FILETIME DateTime
DBTYPE_GUID Guid
DBTYPE_HCHAPTER sem suporte
DBTYPE_I1 SByte
DBTYPE_I2 Int16
DBTYPE_I4 Int32
DBTYPE_I8 Int64
DBTYPE_IDISPATCH objeto
DBTYPE_IUNKNOWN objeto
DBTYPE_NULL DBNull.Value
DBTYPE_NUMERIC Decimal
DBTYPE_PROPVARIANT objeto
DBTYPE_R4 Solteiro
DBTYPE_R8 Double
DBTYPE_STR cadeia
DBTYPE_UDT sem suporte
DBTYPE_UI1 byte (Int16)
DBTYPE_UI2 UInt16 (Int32)
DBTYPE_UI4 UInt32 (Int64)
DBTYPE_UI8 UInt64 (Decimal)
DBTYPE_VARIANT objeto
DBTYPE_VARNUMERIC sem suporte
DBTYPE_WSTR cadeia

Propriedades

Nome 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

Nome Description
GetBoolean(Int32)

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

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 de coluna especificado para o buffer como uma matriz, começando no deslocamento de buffer fornecido.

GetChar(Int32)

Obtém o valor de caractere da coluna especificada.

GetChars(Int32, Int64, Char[], Int32, Int32)

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

GetData(Int32)

Retorna um IDataReader para o ordinal de coluna especificado.

GetDataTypeName(Int32)

Obtém as informações de tipo de dados para o campo especificado.

GetDateTime(Int32)

Obtém o valor de dados 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 precisão dupla do campo especificado.

GetFieldType(Int32)

Obtém as Type informações correspondentes ao tipo do Object qual seria retornado GetValue(Int32).

GetFloat(Int32)

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

GetGuid(Int32)

Retorna o valor GUID do campo especificado.

GetInt16(Int32)

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

GetInt32(Int32)

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

GetInt64(Int32)

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

GetName(Int32)

Obtém o nome do campo a ser localizado.

GetOrdinal(String)

Retorne o índice do campo nomeado.

GetString(Int32)

Obtém o valor da cadeia de caracteres do campo especificado.

GetValue(Int32)

Retorna o valor do campo especificado.

GetValues(Object[])

Popula uma matriz de objetos com os valores de coluna do registro atual.

IsDBNull(Int32)

Retorne se o campo especificado está definido como nulo.

Aplica-se a