IDataRecord Interface

Définition

Donne accès aux valeurs de colonnes de chaque ligne d’un DataReader ; est implémenté par les fournisseurs de données .NET qui accèdent aux bases de données relationnelles.

public interface class IDataRecord
public interface IDataRecord
type IDataRecord = interface
Public Interface IDataRecord
Dérivé

Exemples

L’exemple suivant crée des instances des classes dérivées, SqlConnection, SqlCommandet SqlDataReader. L’exemple lit les données et les écrit dans la console. Enfin, l’exemple ferme le SqlDataReader, puis le SqlConnection.

using System;
using System.Data;
using System.Data.SqlClient;

class Program
{
    static void Main()
    {
        string str = "Data Source=(local);Initial Catalog=Northwind;"
            + "Integrated Security=SSPI";
        ReadOrderData(str);
    }

    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]));
    }
}
Option Explicit On
Option Strict On

Imports System.Data
Imports System.Data.SqlClient

Module Module1

    Sub Main()
        Dim str As String = "Data Source=(local);Initial Catalog=Northwind;" _
       & "Integrated Security=SSPI;"
        ReadOrderData(str)
    End Sub

    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

End Module

Remarques

Les IDataReader interfaces et IDataRecord permettent à une classe héritée d’implémenter une DataReader classe. Cela permet de lire un ou plusieurs flux avant uniquement de jeux de résultats. Pour plus d’informations sur DataReader les classes, consultez Récupération de données à l’aide d’un DataReader.

Une application ne crée pas de instance de l’interface IDataRecord directement, mais crée un instance d’une classe qui hérite IDataRecord. En règle générale, vous obtenez un DataReader via la ExecuteReader méthode de l’objet Command .

Les classes qui héritent IDataRecord doivent implémenter tous les membres hérités et généralement définir des membres supplémentaires pour ajouter des fonctionnalités spécifiques au fournisseur.

Les fournisseurs implémentant un DataReader sont requis pour exposer des données dans des types CLR (Common Language Runtime). La contrainte de type est définie pour certains types non inclus dans le CLR. Ces valeurs sont accessibles en tant que types alternatifs conformes aux types CLR. Par exemple, le tableau suivant répertorie les mappages suggérés des types de données OLE DB aux types CLR, avec d’autres types entre parenthèses.

Type OLE DB Type CLR
DBTYPE_BOOL Int16
DBTYPE_BSTR string
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 ExternalException
DBTYPE_FILETIME DateTime
DBTYPE_GUID Guid
DBTYPE_HCHAPTER non pris en charge
DBTYPE_I1 SByte
DBTYPE_I2 Int16
DBTYPE_I4 Int32
DBTYPE_I8 Int64
DBTYPE_IDISPATCH object
DBTYPE_IUNKNOWN object
DBTYPE_NULL DBNull.Value
DBTYPE_NUMERIC Decimal
DBTYPE_PROPVARIANT object
DBTYPE_R4 Unique
DBTYPE_R8 Double
DBTYPE_STR string
DBTYPE_UDT non pris en charge
DBTYPE_UI1 octet (Int16)
DBTYPE_UI2 UInt16 (Int32)
DBTYPE_UI4 UInt32 (Int64)
DBTYPE_UI8 UInt64 (décimal)
DBTYPE_VARIANT object
DBTYPE_VARNUMERIC non pris en charge
DBTYPE_WSTR string

Propriétés

FieldCount

Obtient le nombre de colonnes figurant dans la ligne actuelle.

Item[Int32]

Obtient la colonne située à l'index spécifié.

Item[String]

Récupère la colonne portant le nom spécifié.

Méthodes

GetBoolean(Int32)

Obtient la valeur de la colonne spécifiée sous la forme d'une valeur Boolean.

GetByte(Int32)

Récupère la valeur de l’entier signé 8 bits de la colonne spécifiée.

GetBytes(Int32, Int64, Byte[], Int32, Int32)

Lit un flux d’octets à partir de l’offset de colonne spécifié dans la mémoire tampon comme un tableau, en commençant à l’offset de mémoire tampon donné.

GetChar(Int32)

Obtient la valeur de caractère de la colonne spécifiée.

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

Lit un flux de caractères à partir de l’offset de colonne spécifié dans la mémoire tampon comme un tableau, en commençant à l’offset de mémoire tampon donné.

GetData(Int32)

Retourne un IDataReader pour le numéro de colonne spécifié.

GetDataTypeName(Int32)

Obtient les informations sur le type de données pour le champ spécifié.

GetDateTime(Int32)

Obtient la valeur des données de date et d’heure du champ spécifié.

GetDecimal(Int32)

Obtient la valeur numérique à position fixe du champ spécifié.

GetDouble(Int32)

Obtient le nombre à virgule flottante double précision du champ spécifié.

GetFieldType(Int32)

Obtient les informations Type correspondant au type de Object qui doit être retourné à partir de GetValue(Int32).

GetFloat(Int32)

Obtient le nombre à virgule flottante simple précision du champ spécifié.

GetGuid(Int32)

Retourne la valeur GUID du champ spécifié.

GetInt16(Int32)

Obtient la valeur de l’entier signé 16 bits du champ spécifié.

GetInt32(Int32)

Obtient la valeur de l’entier signé 32 bits du champ spécifié.

GetInt64(Int32)

Récupère la valeur de l’entier signé 64 bits du champ spécifié.

GetName(Int32)

Obtient le nom du champs à rechercher.

GetOrdinal(String)

Retourne l’index du champ nommé.

GetString(Int32)

Obtient la valeur de chaîne du champ spécifié.

GetValue(Int32)

Retourne la valeur du champ spécifié.

GetValues(Object[])

Remplit un tableau d’objets avec les valeurs de colonne de l’enregistrement actif.

IsDBNull(Int32)

Retourne une valeur indiquant si le champ spécifié a la valeur null.

S’applique à